У меня есть фляжное веб-приложение, развернутое в героку. Мне нужно запланировать выполнение фоновой задачи в определенное время. Я попытался использовать модуль apscheduler. Хотя это позволяет определять периодические задачи, легко добавляя их из вашего приложения во время выполнения, это то, что я ищу.
Я попытался поделиться одними и теми же магазинами заданий в apscheduler.
import time
from apscheduler.scheduler import Scheduler
from apscheduler.jobstores.shelve_store import ShelveJobStore
sched = Scheduler()
sched.add_jobstore(ShelveJobStore('jobstore.db'), 'shelve')
sched.start()
И с терминала я попробовал это,
Python 2.7.5 (default, May 12 2013, 12:00:47)
[GCC 4.8.0 20130502 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from apscheduler.scheduler import Scheduler
>>> sc = Scheduler()
>>> sc.add_jobstore('jobstore.db', 'shelve')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/dhananjay/git/blast/venv/lib/python2.7/site-packages/apscheduler/scheduler.py", line 168, in add_jobstore
jobstore.load_jobs()
AttributeError: 'str' object has no attribute 'load_jobs'
Я столкнулся с этим вопросом, а ищет подход на основе сельдерея. В нем говорится о той же проблеме с точки зрения django, но я не могу заставить ее работать с моим приложением (я совершенно не обращаю внимания на django)
sched.add_jobstore
с экземпляромShelveJobStore
в качестве первого аргумента, а во втором вы вызываете его со строкой в качестве первого аргумента. Измените свой второй пример, чтобы использоватьShelveJobStore
, и все должно работать. - person Sean Vieira   schedule 01.07.2014