schedule.py 767 B

12345678910111213141516171819202122232425262728
  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, redis_key=None):
  7. if redis_key is not None:
  8. return self.mrq.pop_task_by_key(redis_key)
  9. else:
  10. return self.mrq.pop_task([REDIS_KEY])
  11. def insert_tasks(self, tasks, level=1, **kwargs):
  12. """批量插入任务"""
  13. allow_output_log = kwargs.get('allow_output_log', True)
  14. if isinstance(tasks, list):
  15. _tasks = tasks
  16. else:
  17. _tasks = [tasks]
  18. self.mrq.push_task(
  19. REDIS_KEY,
  20. _tasks,
  21. level=level,
  22. allow_output_log=allow_output_log
  23. )