2013-03-05 190 views
1

我們設置了一個Celery(+ Celerybeat),其中包含一個RabbitMQ後端,用於運行計劃和未計劃的任務。我注意到,我偶爾會錯過/放棄計劃任務的發生。一切都繼續正常工作,並且任務繼續按預定時間運行,但看起來有些運行正在消失。在日誌中的應該每10分鐘運行任務的例子:Celerybeat偶爾會丟失任務

[2013-03-04 02:28:41,630: INFO/MainProcess] Task my.task.name[8e442788-9501-4043-9708-0acc43b1e5c0] succeeded in 2.83057904243s: None 
[2013-03-04 02:38:41,611: INFO/MainProcess] Task my.task.name[97b2daf0-100c-4e63-8a03-833fccd7c7fe] succeeded in 2.7966811657s: None 
[2013-03-04 02:48:41,398: INFO/MainProcess] Task my.task.name[d58e0270-3b9d-448e-a95a-5f6865a85c00] succeeded in 2.61804389954s: None 
[2013-03-04 02:59:04,136: INFO/MainProcess] Task my.task.name[925d63e8-6669-4ffb-8ff1-a79dac28689e] succeeded in 2.69637179375s: None 
[2013-03-04 03:19:04,066: INFO/MainProcess] Task my.task.name[cb903ba2-f9cc-475b-8275-9af400e11443] succeeded in 2.59652400017s: None 
[2013-03-04 03:29:06,002: INFO/MainProcess] Task my.task.name[b9bc019b-a44e-430f-9cdb-d1b919d9cf08] succeeded in 0.994740962982s: None 
[2013-03-04 03:48:41,414: INFO/MainProcess] Task my.task.name[8ec75918-0127-411c-b1fa-a338129259e7] succeeded in 2.6219689846s: None 
[2013-03-04 03:58:40,936: INFO/MainProcess] Task my.task.name[bbcdeaf3-0b83-440e-b9c8-08ed67b17e27] succeeded in 2.1441078186s: None 
[2013-03-04 04:08:41,323: INFO/MainProcess] Task my.task.name[f42ce313-a200-4bdd-9b47-c37f4a7da003] succeeded in 2.53811717033s: None 
[2013-03-04 04:29:04,103: INFO/MainProcess] Task my.task.name[526427fd-a609-4abd-ab42-cae0b0f267b6] succeeded in 2.59499788284s: None 

你可以看到,3:08運行丟失,因爲是3:38和4:08。

我的問題是:我該如何疑難解答這個問題?我認爲沒有人能夠根據這些數據爲我提供解決方案,但也許有人可以提出一種方法來確定可能導致這種情況的原因。

我們設置更多信息,可以幫助:

  • 我們正在運行的Django 1.2.7,2.4.6芹菜和Django的芹菜2.4.2。
  • 我們正在運行RabbitMQ 3.0.2-1。
  • 我們有兩臺運行Celeryd的服務器(針對相同的RabbitMQ服務器)。由於我們有兩個獨立的隊列,兩者都在運行celeryd_multi。當然,只有一個可以運行celerybeat。
+0

你有沒有想過發生了什麼?我遇到了同樣的問題,它令人生氣。 – 2014-07-27 17:01:54

回答

0

您是否試過用-l DEBUG運行celerybeat?

它將顯示隊列正在接收的任務以及許多其他信息,這些信息可能會提供有關爲何未執行任務的線索。