簡體   English   中英

Django Celery 計划任務沒有 output

[英]Django Celery scheduled task no output

我正在使用 Django 並希望每天運行兩次(09:00 和 17:00)某個任務。 於是在網上找到了Celery,看起來還不錯。 我遵循了一些教程,並進行了設置。

我在數據庫中設置了一個定期任務,它每分鍾運行一次(用於測試)。 或者,它沒有,它只是這樣說:

[2020-12-15 14:32:34,997: INFO/MainProcess] Scheduler: Sending due task ResumePentest (VulnManager.tasks.resumePentest)
[2020-12-15 14:32:34,998: DEBUG/MainProcess] VulnManager.tasks.resumePentest sent. id->277c73a8-58bc-41ea-b2ba-4aa7af0c8b94

我認為它實際上並沒有運行,因為我嘗試了一些不同的“調試”選項:創建文件、打印文本、運行我的實際命令。 他們似乎都沒有工作。

我的 tasks.py 文件如下所示(用於測試):

from __future__ import absolute_import, unicode_literals
from celery import shared_task

@shared_task
def resumePentest():
    f = open("/home/marvin/demofile2.txt", "a")
    f.write("Now the file has more content!")
    f.close()

我使用以下命令運行 celery 工作程序:

celery -A VulnScanner beat -l DEBUG --scheduler django_celery_beat.schedulers:DatabaseScheduler

有什么提示嗎? 不知道我做錯了什么? 如果需要更多信息,請告訴我。

celery 工人的完整 output:

celery beat v5.0.4 (singularity) is starting.
__    -    ... __   -        _
LocalTime -> 2020-12-15 14:44:26
Configuration ->
    . broker -> amqp://guest:**@localhost:5672//
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> django_celery_beat.schedulers.DatabaseScheduler

    . logfile -> [stderr]@%DEBUG
    . maxinterval -> 5.00 seconds (5s)
[2020-12-15 14:44:26,388: DEBUG/MainProcess] Setting default socket timeout to 30
[2020-12-15 14:44:26,389: INFO/MainProcess] beat: Starting...
[2020-12-15 14:44:26,389: DEBUG/MainProcess] DatabaseScheduler: initial read
[2020-12-15 14:44:26,389: DEBUG/MainProcess] Writing entries...
[2020-12-15 14:44:26,390: DEBUG/MainProcess] DatabaseScheduler: Fetching database schedule
[2020-12-15 14:44:26,392: DEBUG/MainProcess] Using selector: EpollSelector
[2020-12-15 14:44:26,396: DEBUG/MainProcess] Current schedule:
<ModelEntry: ResumePentest VulnManager.tasks.resumePentest(*[], **{}) <freq: 1.00 minute>>
<ModelEntry: celery.backend_cleanup celery.backend_cleanup(*[], **{}) <crontab: 0 4
         * *
          * (m/h/d/dM/MY), UTC>
        >
[2020-12-15 14:44:26,429: DEBUG/MainProcess] beat: Ticking with max interval->5.00 seconds
[2020-12-15 14:44:26,448: DEBUG/MainProcess] Start from server, version: 0.9, properties: {'capabilities': {'publisher_confirms': True, 'exchange_exchange_bindings': True, 'basic.nack': True, 'consumer_cancel_notify': True, 'connection.blocked': True, 'consumer_priorities': True, 'authentication_failure_close': True, 'per_consumer_qos': True, 'direct_reply_to': True}, 'cluster_name': 'rabbit@ubuntuserver', 'copyright': 'Copyright (c) 2007-2019 Pivotal Software, Inc.', 'information': 'Licensed under the MPL 1.1. Website: https://rabbitmq.com', 'platform': 'Erlang/OTP 22.2.7', 'product': 'RabbitMQ', 'version': '3.8.2'}, mechanisms: [b'PLAIN', b'AMQPLAIN'], locales: ['en_US']
[2020-12-15 14:44:26,449: INFO/MainProcess] Scheduler: Sending due task ResumePentest (VulnManager.tasks.resumePentest)
[2020-12-15 14:44:26,455: DEBUG/MainProcess] using channel_id: 1
[2020-12-15 14:44:26,457: DEBUG/MainProcess] Channel open
[2020-12-15 14:44:26,459: DEBUG/MainProcess] beat: Synchronizing schedule...
[2020-12-15 14:44:26,459: DEBUG/MainProcess] Writing entries...
[2020-12-15 14:44:26,467: DEBUG/MainProcess] VulnManager.tasks.resumePentest sent. id->d33fe09b-2e25-4f7b-aec9-03ea4a630ab9
[2020-12-15 14:44:26,469: DEBUG/MainProcess] beat: Waking up in 5.00 seconds.
[2020-12-15 14:44:31,477: DEBUG/MainProcess] beat: Waking up in 5.00 seconds.
^C[2020-12-15 14:44:33,765: DEBUG/MainProcess] Writing entries...
[2020-12-15 14:44:33,766: DEBUG/MainProcess] Writing entries...
[2020-12-15 14:44:33,766: DEBUG/MainProcess] Writing entries...
[2020-12-15 14:44:33,766: DEBUG/MainProcess] Writing entries...

使用它的最終目標是使用 greenbone / gvm-cli 開始(在 9:00)和停止(在 17:00)安全掃描。

嘗試使用此命令檢查新任務: celery -A proj worker -l INFO

有關可用命令行選項的完整列表,請使用幫助命令: celery help

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM