<bdo id='Bt5XU'></bdo><ul id='Bt5XU'></ul>
  • <small id='Bt5XU'></small><noframes id='Bt5XU'>

      <i id='Bt5XU'><tr id='Bt5XU'><dt id='Bt5XU'><q id='Bt5XU'><span id='Bt5XU'><b id='Bt5XU'><form id='Bt5XU'><ins id='Bt5XU'></ins><ul id='Bt5XU'></ul><sub id='Bt5XU'></sub></form><legend id='Bt5XU'></legend><bdo id='Bt5XU'><pre id='Bt5XU'><center id='Bt5XU'></center></pre></bdo></b><th id='Bt5XU'></th></span></q></dt></tr></i><div id='Bt5XU'><tfoot id='Bt5XU'></tfoot><dl id='Bt5XU'><fieldset id='Bt5XU'></fieldset></dl></div>
      1. <tfoot id='Bt5XU'></tfoot><legend id='Bt5XU'><style id='Bt5XU'><dir id='Bt5XU'><q id='Bt5XU'></q></dir></style></legend>

      2. 芹菜中如何向特定队列发送周期性任务

        How to send periodic tasks to specific queue in Celery(芹菜中如何向特定队列发送周期性任务)

        <i id='Tm4jm'><tr id='Tm4jm'><dt id='Tm4jm'><q id='Tm4jm'><span id='Tm4jm'><b id='Tm4jm'><form id='Tm4jm'><ins id='Tm4jm'></ins><ul id='Tm4jm'></ul><sub id='Tm4jm'></sub></form><legend id='Tm4jm'></legend><bdo id='Tm4jm'><pre id='Tm4jm'><center id='Tm4jm'></center></pre></bdo></b><th id='Tm4jm'></th></span></q></dt></tr></i><div id='Tm4jm'><tfoot id='Tm4jm'></tfoot><dl id='Tm4jm'><fieldset id='Tm4jm'></fieldset></dl></div>

        <small id='Tm4jm'></small><noframes id='Tm4jm'>

            <bdo id='Tm4jm'></bdo><ul id='Tm4jm'></ul>
          • <legend id='Tm4jm'><style id='Tm4jm'><dir id='Tm4jm'><q id='Tm4jm'></q></dir></style></legend>

                1. <tfoot id='Tm4jm'></tfoot>

                    <tbody id='Tm4jm'></tbody>
                  本文介绍了芹菜中如何向特定队列发送周期性任务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  默认情况下,芹菜将所有任务发送到‘celery’队列,但您可以通过添加额外参数来更改此行为:

                  @task(queue='celery_periodic')
                  def recalc_last_hour():
                      log.debug('sending new task')
                      recalc_hour.delay(datetime(2013, 1, 1, 2)) # for example
                  

                  日程安排程序设置:

                  CELERYBEAT_SCHEDULE = {
                     'installer_recalc_hour': {
                          'task': 'stats.installer.tasks.recalc_last_hour',
                          'schedule': 15  # every 15 sec for test
                      },
                  }
                  CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
                  

                  运行工作进程:

                  python manage.py celery worker -c 1 -Q celery_periodic -B -E
                  

                  此方案未按预期工作:此工作进程将定期任务发送到"celery"队列,而不是"celery_periical"。我如何修复它?

                  P.S.芹菜==3.0.16

                  推荐答案

                  我找到了此问题的解决方案:

                  1)首先,我更改了周期性任务的配置方式。我使用了这样的@PERIONIC_TASK修饰符:

                  @periodic_task(run_every=crontab(minute='5'),
                                 queue='celery_periodic',
                                 options={'queue': 'celery_periodic'})
                  def recalc_last_hour():
                      dt = datetime.utcnow()
                      prev_hour = datetime(dt.year, dt.month, dt.day, dt.hour) 
                                  - timedelta(hours=1)
                      log.debug('Generating task for hour %s', str(prev_hour))
                      recalc_hour.delay(prev_hour)
                  

                  2)我在@periical_task的参数中写了两次celery_periical

                  • queue=‘celery_periodic’选项在您从代码(.Delay或.Apply_Async)调用任务时使用

                  • options={‘queue’:‘celery_periical’}选项在芹菜节拍调用时使用。

                  我确信,如果您使用CELERYBEAT_SCHEDUE变量配置定期任务,同样的事情也是可能的。

                  更新。此解决方案适用于CELERYBEAT_SCHEDULER的基于数据库和基于文件的存储。

                  这篇关于芹菜中如何向特定队列发送周期性任务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)
                  Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)
                  Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)
                  Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)
                  Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)
                  Grouping pandas DataFrame by 10 minute intervals(按10分钟间隔对 pandas 数据帧进行分组)

                  <small id='uy31N'></small><noframes id='uy31N'>

                2. <tfoot id='uy31N'></tfoot>
                            <bdo id='uy31N'></bdo><ul id='uy31N'></ul>
                            <legend id='uy31N'><style id='uy31N'><dir id='uy31N'><q id='uy31N'></q></dir></style></legend>

                              <tbody id='uy31N'></tbody>
                            <i id='uy31N'><tr id='uy31N'><dt id='uy31N'><q id='uy31N'><span id='uy31N'><b id='uy31N'><form id='uy31N'><ins id='uy31N'></ins><ul id='uy31N'></ul><sub id='uy31N'></sub></form><legend id='uy31N'></legend><bdo id='uy31N'><pre id='uy31N'><center id='uy31N'></center></pre></bdo></b><th id='uy31N'></th></span></q></dt></tr></i><div id='uy31N'><tfoot id='uy31N'></tfoot><dl id='uy31N'><fieldset id='uy31N'></fieldset></dl></div>