我在Heroku上推动了我的拼搏项目。我需要自动化一些任务。因此,从文档中,我了解了Apsheduler的自定义时钟。 这是我的目录结构:
.
├── bin
│ └── testargs.py
├── clock.py
├── Dockerfile
├── :hrsZp[do
├── newsfetch
│ ├── __init__.py
│ ├── items.py
│ ├── middlewares.py
│ ├── pipelines.py
│ ├── __pycache__
│ │ ├── __init__.cpython-34.pyc
│ │ ├── middlewares.cpython-34.pyc
│ │ ├── pipelines.cpython-34.pyc
│ │ └── settings.cpython-34.pyc
│ ├── settings.py
│ └── spiders
│ ├── indiatv.py
│ ├── __init__.py
│ ├── ndtv.py
│ ├── __pycache__
│ │ ├── indiatv.cpython-34.pyc
│ │ ├── __init__.cpython-34.pyc
│ │ ├── ndtv.cpython-34.pyc
│ │ ├── republic.cpython-34.pyc
│ │ ├── thehindu.cpython-34.pyc
│ │ └── zee.cpython-34.pyc
│ ├── republic.py
│ ├── thehindu.py
│ └── zee.py
├── p1.py
├── Procfile
├── requirements.txt
├── scrapy.cfg
└── setup.py
5 directories, 30 files
这是我的要求文件
Scrapy>=1.0.2
cffi>=1.12.2
psycopg2
APScheduler==3.0.0
这是我的clock.py文件
from apscheduler.schedulers.blocking import BlockingScheduler
sched = BlockingScheduler()
@sched.scheduled_job('interval', minutes=3)
def timed_job():
print('This job is run every three minutes.')
sched.start()
我没有收到任何要打印在我的heroku日志中的消息(该作业每三分钟运行)。我已经提交了所有更改并部署了应用程序。请帮助运行脚本,以便我进一步自动化该任务。
这是日志的当前状态:
2019-03-14T14:27:40.979762+00:00 heroku[clock.1]: State changed from crashed to starting
2019-03-14T14:27:47.752630+00:00 heroku[clock.1]: Starting process with command `: python clock.py`
2019-03-14T14:27:48.437785+00:00 heroku[clock.1]: State changed from starting to up
2019-03-14T14:27:50.480830+00:00 heroku[clock.1]: State changed from up to crashed
2019-03-14T14:27:50.466390+00:00 heroku[clock.1]: Process exited with status 0
答案 0 :(得分:0)
2019-03-14T14:27:47.752630+00:00 heroku[clock.1]: Starting process with command ': python clock.py'
由于您的命令应显示'python clock.py'
(请注意缺少的冒号),因此您的Procfile中似乎有错字。 Procfile的正确行是:
clock: python clock.py
此外,如果您还没有这样做,请扩大时钟进程。在Heroku CLI中,使用命令heroku ps:scale clock=1
。
有关更多详细信息,请参见Heroku page for APScheduler。