我想用disque作为工作商店。 我使用Apscheduler中的 RedisJobStore 类在redis中实现了相同的功能。
以下是redis job-store的代码段:
from apscheduler.jobstores.redis import RedisJobStore
job_stores = {
'default': RedisJobStore(jobs_key='ap_scheduler.jobs', run_times_key='ap_scheduler.run_times')
}
是否可以使用RedisJobStore类创建一个包装器来创建disque中的作业存储,然后由apscheduler使用?
class RedisJobStore(BaseJobStore):
def __init__(self, db=0, jobs_key='apscheduler.jobs', run_times_key='apscheduler.run_times',
pickle_protocol=pickle.HIGHEST_PROTOCOL, **connect_args):
super(RedisJobStore, self).__init__()
c = Client(['localhost:7711'])
self.disque = c.connect()
def lookup_job(self, job_id):
job_state = self.disque.hget(self.jobs_key, job_id)
return self._reconstitute_job(job_state) if job_state else
None