Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何每天早上6点和下午6点运行Django芹菜任务?_Python_Django_Django Celery_Periodic Task - Fatal编程技术网

Python 如何每天早上6点和下午6点运行Django芹菜任务?

Python 如何每天早上6点和下午6点运行Django芹菜任务?,python,django,django-celery,periodic-task,Python,Django,Django Celery,Periodic Task,嗨,我的项目中有Django芹菜。目前它每天每12小时运行一次(午夜/00:00am和12:00pm)。但我希望它每天早上6点和下午6点运行一次。我该怎么做?提前谢谢 任务: 从中,在示例表中-您可以看到您可以在多个小时内通过(在24小时内)。因此,当您希望在上午6点和下午6点(1800)运行它时: 最好顺便说一下: 在您的芹菜.py文件中 from celery.task import periodic_task from celery.schedules import crontab f

嗨,我的项目中有Django芹菜。目前它每天每12小时运行一次(午夜/00:00am和12:00pm)。但我希望它每天早上6点和下午6点运行一次。我该怎么做?提前谢谢

任务:

从中,在示例表中-您可以看到您可以在多个小时内通过(在24小时内)。因此,当您希望在上午6点和下午6点(1800)运行它时:


最好顺便说一下:

在您的
芹菜.py
文件中

from celery.task import periodic_task
from celery.schedules import crontab  
from xxx.views import update_xx_task, execute_yy_task

@periodic_task(run_every=crontab(minute=0, hour='*/12'),
    queue='nonsdepdb3115', options={'queue': 'nonsdepdb3115'})
def xxx_execute_xx_task():
    execute_yy_task()
    update_xx_task()
@periodic_task(run_every=crontab(minute=0, hour='6,18'))
import os

from celery import Celery
from celery.schedules import crontab

# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Moex.settings')

app = Celery('Moex',
             backend='rpc://',
             broker='pyamqp://', )

app.config_from_object('django.conf:settings', namespace='CELERY', )

app.conf.update(result_expires=3600,
                enable_utc=True,
                timezone='Europe/Moscow', )

app.conf.beat_schedule = {
    "every day between 6 AM & 18 PM": {
        "task": "xxx_execute_xx_task",  # <---- Name of task
        "schedule": crontab(hour='6, 18',
                            minute=0,
                            )
    },
    "every minute": {
        "task": "check_if_need_update_prices",
        'schedule': 60.0,
    }
}

app.autodiscover_tasks()
import requests
from celery import shared_task, states


@shared_task(bind=True,
             name='xxx_execute_xx_task',
             max_retries=3,
             soft_time_limit=20)
def xxx_execute_xx_task(self):
    # do something
    data = requests.get(url='https://stackoverflow.com/questions/32449845/'
                            'how-to-run-a-django-celery-task-every-6am-and-6pm-daily')
if data.status_code == 200:
    task.update_state(state=states.SUCCESS)
    if data:
        self.update_state(state=states.SUCCESS)
    else:
        self.update_state(state=states.FAILURE)