1234567891011121314151617181920212223242526272829303132333435 |
- import * as fs from 'fs';
- import * as log4js from 'log4js';
- import * as path from 'path';
- const logger = log4js.getLogger('twitter');
- logger.level = 'info';
- function work(lock: ILock, lockfile: string) {
- if (lock.feed.length === 0) {
- setTimeout(() => {
- work(lock, lockfile);
- }, 60000);
- return;
- }
- if (lock.workon >= lock.feed.length) lock.workon = 0;
- if (!lock.threads[lock.feed[lock.workon]] ||
- !lock.threads[lock.feed[lock.workon]].subscribers ||
- lock.threads[lock.feed[lock.workon]].subscribers.length === 0) {
- logger.error(`nobody subscribes thread ${lock.feed[lock.workon]}, removing from feed`);
- lock.feed.splice(lock.workon, 1);
- fs.writeFileSync(path.resolve(lockfile), JSON.stringify(lock));
- work(lock, lockfile);
- return;
- }
- // TODO: Work on lock.feed[lock.workon]
- lock.workon++;
- fs.writeFileSync(path.resolve(lockfile), JSON.stringify(lock));
- setTimeout(() => {
- work(lock, lockfile);
- }, 60000);
- }
- export default work;
|