Python django芹菜未在digitalocean服务器中执行tasks.py
我在我的Python django芹菜未在digitalocean服务器中执行tasks.py,python,django,celery,digital-ocean,Python,Django,Celery,Digital Ocean,我在我的django项目中使用了芹菜来安排任务,它在本地服务器中有点完美,我将此更新上传到我的digitalocean服务器,经过3天的搜索和修复问题后,我无法理解我犯的那一撮错误, 这是我的项目结构 ├── app │ ├── __init__.py │ ├── admin.py │ ├── urls.py │ ├── models.py │ ├── apps.py │ └── views.py ├── manage.py ├── corsa │ ├── __ini
django
项目中使用了芹菜
来安排任务,它在本地服务器中有点完美,我将此更新上传到我的digitalocean
服务器,经过3天的搜索和修复问题后,我无法理解我犯的那一撮错误,
这是我的项目结构
├── app
│ ├── __init__.py
│ ├── admin.py
│ ├── urls.py
│ ├── models.py
│ ├── apps.py
│ └── views.py
├── manage.py
├── corsa
│ ├── __init__.py
│ ├── celery.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── requirements.txt
└── templates
├── base.html
├── other
tasks.py:
@shared_task
def just_testing():
print(' test log ')
@shared_task
def tasks_to_do_daily():
# some stuff to do daily
@shared_task
def tasks_to_do_weekly():
# some stuff to do weekly
芹菜:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'corsa.settings')
app = Celery('corsa')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
app.conf.beat_schedule = {
'add-contrab1': {
'task': 'app.tasks.just_testing',
'schedule': 6.0,
},
'add-contrab2': {
'task': 'app.tasks.tasks_to_do_daily',
'schedule': crontab(minute='26', hour='09'),
},
'add-contrab3': {
'task': 'app.tasks.tasks_to_do_weekly',
'schedule': crontab(minute='00', hour='00', day_of_week='sat,tue'),
},
}
app.conf.CELERY_TIMEZONE = 'Asia/Hong_Kong'
settings.py:
CELERY_BROKER_URL = 'amqp://localhost'
好的,现在发布部分
- 本地
芹菜-一个corsa工人-l信息
,芹菜-一个corsa节拍-l信息
,芹菜工人-A corsa--loglevel=info
所有主题工作都没有错误,但根本不做任何任务code of tasks.py
唯一一个与我配合良好的方法是:
celery -A corsa worker -B
我不知道为什么,我寻找原因,但找不到一个明确的答案来解释原因
- 数码海洋
芹菜工人-A corsa--loglevel=INFO
更改为芹菜-A corsa工人-B
,但仍然没有注意到wokring!
顺便说一句,与Supervisord
相关的所有赞扬都能像赞扬一样完美地工作,但仍然没有执行tasks.py
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl stop corsa
sudo supervisorctl start corsa
sudo supervisorctl status corsa
所以对于服务器部分,我仍然不知道有什么问题以及如何解决。需要帮忙吗
amqp://localhost
-首先,您的本地机器上是否有运行RabbitMQ的实例?是的,在本地机器上,一切都很完美@Greenevand,远程怎么样?你的芹菜应用程序能连接到代理吗?也许您还应该向问题添加一些日志是的,它已连接,但如果您能够通过调用taskname在队列中获取任务,则不执行taskscheck。应用异步((),{},queue='testqueue')
,在这种情况下,您将知道问题出在芹菜节拍amqp://localhost
-首先,您的本地计算机上有运行RabbitMQ的实例吗?是的,在本地计算机上,一切都很完美@Greenevand,远程呢?你的芹菜应用程序能连接到代理吗?也许您还应该在问题中添加一些日志是的,它已连接,但如果您能够通过调用taskname获得队列中的任务,则不执行taskscheck。应用异步((),{},queue='testqueue')
,在这种情况下,您将知道问题出在芹菜中