schedule.py 692 B

12345678910111213141516171819202122232425
  1. from crawler.q import RedisQueue
  2. from settings import REDIS_KEY
  3. class Scheduler:
  4. def __init__(self, queue=None):
  5. self.mrq = (queue or RedisQueue())
  6. def get_task(self):
  7. return self.mrq.pop_task([REDIS_KEY])
  8. def insert_task(self, task, level=1, **kwargs):
  9. """插入一条任务"""
  10. self.mrq.push_task(REDIS_KEY, [task], level=level, **kwargs)
  11. def insert_tasks(self, tasks, level=1, **kwargs):
  12. """批量插入任务"""
  13. allow_output_log = kwargs.get('allow_output_log', True)
  14. self.mrq.push_task(
  15. REDIS_KEY,
  16. tasks,
  17. level=level,
  18. allow_output_log=allow_output_log
  19. )