4

我在 heroku 中部署了一个烧瓶网络应用程序。我需要安排在特定时间安排的后台任务。我尝试过使用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)

4

1 回答 1

-1

当您尝试从终端运行它时,您给 add_jobstore 一个字符串作为第一个参数,而不是作业存储。它需要一个作业存储作为第一个参数,有关更多信息,请参阅文档

至于在 Heroku 中调度后台任务,我建议阅读Worker Dynos、Background Jobs 和 Queuing文章。

于 2014-07-22T20:37:57.553 回答