diff options
| author | Akihiko Odaki <nekomanma@pixiv.co.jp> | 2018-04-04 22:45:55 +0900 |
|---|---|---|
| committer | Akihiko Odaki <nekomanma@pixiv.co.jp> | 2018-04-04 22:45:55 +0900 |
| commit | d7c13b975f55c85b695b72a3ded3d5de97227414 (patch) | |
| tree | e197f64e6b977c1f8199b3b2a93815a5529e704d /src/queue/index.ts | |
| parent | Make HTTP request first in unfollow job (diff) | |
| download | sharkey-d7c13b975f55c85b695b72a3ded3d5de97227414.tar.gz sharkey-d7c13b975f55c85b695b72a3ded3d5de97227414.tar.bz2 sharkey-d7c13b975f55c85b695b72a3ded3d5de97227414.zip | |
Retry HTTP requests
Diffstat (limited to 'src/queue/index.ts')
| -rw-r--r-- | src/queue/index.ts | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/queue/index.ts b/src/queue/index.ts new file mode 100644 index 0000000000..f90754a561 --- /dev/null +++ b/src/queue/index.ts @@ -0,0 +1,38 @@ +import { createQueue } from 'kue'; +import config from '../config'; +import db from './processors/db'; +import http from './processors/http'; + +const queue = createQueue({ + redis: { + port: config.redis.port, + host: config.redis.host, + auth: config.redis.pass + } +}); + +export function createHttp(data) { + return queue + .create('http', data) + .attempts(16) + .backoff({ delay: 16384, type: 'exponential' }); +} + +export function createDb(data) { + return queue.create('db', data); +} + +export function process() { + queue.process('db', db); + + /* + 256 is the default concurrency limit of Mozilla Firefox and Google + Chromium. + + a8af215e691f3a2205a3758d2d96e9d328e100ff - chromium/src.git - Git at Google + https://chromium.googlesource.com/chromium/src.git/+/a8af215e691f3a2205a3758d2d96e9d328e100ff + Network.http.max-connections - MozillaZine Knowledge Base + http://kb.mozillazine.org/Network.http.max-connections + */ + queue.process('http', 256, http); +} |