åé¡ã¯ãç¡äººã®Googleã°ã«ãŒãã®æçš¿ã®åæçš¿ã§ã_åãã¿ã¹ã¯ãè€æ°åå®è¡ãããŸããïŒ_
> ./bin/celery -A celery_app report
software -> celery:4.1.0 (latentcall) kombu:4.1.0 py:3.6.1
billiard:3.5.0.3 redis:2.10.6
platform -> system:Linux arch:64bit, ELF imp:CPython
loader -> celery.loaders.app.AppLoader
settings -> transport:redis results:redis://localhost:6379/2
broker_url: 'redis://localhost:6379/2'
result_backend: 'redis://localhost:6379/2'
task_serializer: 'json'
result_serializer: 'json'
accept_content: ['json']
timezone: 'Europe/Berlin'
enable_utc: True
imports: 'tasks'
task_routes: {
'tasks': {'queue': 'celery-test-queue'}}
ç§ã®ã¢ããªã±ãŒã·ã§ã³ã¯ã2ã€ãå Žåã«ãã£ãŠã¯3ã€ã®ã¿ã¹ã¯ãããªãåäžã®ã°ã«ãŒããã¹ã±ãžã¥ãŒã«ããããããã1æé以å ã«ç¬èªã®ETAã䜿çšããŸãã ETAãå°çãããšãã»ããªãã°ã«æ¬¡ã®ããã«è¡šç€ºãããŸãã
[2017-11-20 09:55:34,470: INFO/ForkPoolWorker-2] Task tasks._test_exec[bd08ab85-28a8-488f-ba03-c2befde10054] succeeded in 33.81780316866934s: None
[2017-11-20 09:55:34,481: INFO/ForkPoolWorker-2] Task tasks._test_exec[bd08ab85-28a8-488f-ba03-c2befde10054] succeeded in 0.009824380278587341s: None
[2017-11-20 09:55:34,622: INFO/ForkPoolWorker-2] Task tasks._test_exec[bd08ab85-28a8-488f-ba03-c2befde10054] succeeded in 0.14010038413107395s: None
âŠ
[2017-11-20 09:55:37,890: INFO/ForkPoolWorker-8] Task tasks._test_exec[bd08ab85-28a8-488f-ba03-c2befde10054] succeeded in 0.012678759172558784s: None
[2017-11-20 09:55:37,891: INFO/ForkPoolWorker-2] Task tasks._test_exec[bd08ab85-28a8-488f-ba03-c2befde10054] succeeded in 0.01177949644625187s: None
[2017-11-20 09:55:37,899: INFO/ForkPoolWorker-8] Task tasks._test_exec[bd08ab85-28a8-488f-ba03-c2befde10054] succeeded in 0.008250340819358826s: None
âŠ
ããã¯äœååãç¹°ââãè¿ãããšãã§ããŸãã æåã®ã¿ã¹ã¯ã®33ç§ã®å®è¡æéãšãããŸããŸãªã¯ãŒã«ãŒã®äœ¿çšã«æ³šæããŠãã ããã
ãã®åäœã«ã€ããŠã®èª¬æã¯ãããŸãããããã§äœãèµ·ãã£ãŠããã®ããç解ããããšæããŸãã
å€åããã¯å¯èŠæ§ã¿ã€ã ã¢ãŠãã«é¢é£ããŠããŸããïŒ
@georgepsarakisçæã«ã€ããŠè©³ããæããŠããã ããŸããïŒ
ç§ã®ç¥ãéããããã¯AMQPã®ç¢ºèªå¿çç¹æ§ãçµã¿èŸŒãŸããŠããªããããŒã«ãŒãã©ã³ã¹ããŒãã®æ¢ç¥ã®åé¡ã§ãã ã¿ã¹ã¯ã®å®äºæéãå¯èŠæ§ã¿ã€ã ã¢ãŠããè¶ ãããšãã¿ã¹ã¯ã¯æ°ããã¯ãŒã«ãŒã«å²ãåœãŠããããããã¿ã¹ã¯ã䞊è¡ããŠå®è¡ãããŠããããšãããããŸãã
@georgepsarakisããã§ãã¿ã¹ã¯ãã¯ããã«å ã«ã¹ã±ãžã¥ãŒã«ãããŠããå Žåãç§ã¯äžèšãèŠããããããŸãããïŒ ãå¯èŠæ§ã¿ã€ã ã¢ãŠããã¯ããã«å¯ŸåŠããŸããïŒ ãªã³ã¯ããããã¥ã¡ã³ãããïŒ
Redisã®ããã©ã«ãã®å¯èŠæ§ã¿ã€ã ã¢ãŠãã¯1æéã§ãã
ã€ãŸãã1æé以å ã«ã¯ãŒã«ãŒãã¿ã¹ã¯ã確èªããªãã£ãå ŽåïŒã€ãŸããå®è¡ããªãã£ãå ŽåïŒããã®ã¿ã¹ã¯ã¯ç¢ºèªããªãã£ãå¥ã®ã¯ãŒã«ãŒã«éä¿¡ãããŸããããã¥ã¡ã³ã; ãã®é¢é£ããåé¡https://github.com/celery/kombu/issues/337; ãŸãã¯ãã®ããã°ããã®åŒçšïŒ
ããããéçºè ãããã䜿ãå§ããã°ããã®ãšãã圌ãã¯å®æçã«åŽåè ã®ç°åžžãªæ¯ãèããç¹ã«è€æ°ã®åŽåè ã«ããåãã¿ã¹ã¯ã®è€æ°ã®å®è¡ã«çŽé¢ããŸãã ãããåŒãèµ·ããçç±ã¯ãå¯èŠæ§ã¿ã€ã ã¢ãŠãèšå®ã§ãã
visibility_timeout
ã31,540,000ç§ïŒ1幎ïŒã«èšå®ãããšãç°¡åã«ä¿®æ£ã§ããå¯èœæ§ããããŸãã
å¯èŠæ§ã®ã¿ã€ã ã¢ãŠãã2æéã«å¢ãããšãã¿ã¹ã¯ã¯1åã ãå®è¡ãããŸãã
ãããã£ãŠãçµã¿åããããšïŒ
ç§ã¯äœãèµ·ããããšæããŸãïŒ
Redisãã©ã³ã¹ããŒãã®å®è£ ã調ã¹ããšããœãŒããããã»ããã䜿çšããŠããããã¥ãŒã«å ¥ããããæéãã¹ã³ã¢ãšããŠzaddã«æž¡ããŠããããšãããããŸãã ã¡ãã»ãŒãžã¯ãã®ã¿ã€ã ã¹ã¿ã³ãã«åºã¥ããŠåŸ©å ãããå¯èŠæ§ã¿ã€ã ã¢ãŠãã«çããééãšæ¯èŒãããŸãã
ãããRedisãã©ã³ã¹ããŒãã®å éšãå°ã説æããããšãé¡ã£ãŠããŸãã
@georgepsarakis ãç§ã¯ä»å®å šã«æ··ä¹±ããŠããŸãã ã¿ã¹ã¯ã®ETAãä»ãã2ãæåŸã«èšå®ãããŠããå Žåãã¿ã¹ã¯ãã¹ã±ãžã¥ãŒã«ãããŠãã1æéåŸã«ã¯ãŒã«ãŒããããåãåãã®ã¯ãªãã§ããïŒ ç§ã¯äœãã足ããªãã®ã§ããïŒ
ç§ã®ïŒééã£ãïŒïŒä»®å®ã¯æ¬¡ã®ãšããã§ãïŒ
äžèšã®ã_ç§ã¯äœãèµ·ãããïŒ_ãã¯ç§ã®ä»®å®ãšã¯ããªãç°ãªããŸãã
ç§ãåãåé¡ã«ééããŸãããããªãã¯ããã解決ããŸãããïŒ @jenstroeger
ããããšãïŒ
@jenstroegerã¯å®è¡å¯èœãªãããŒã®ããã«ã¯èãããŸããããETAæ¡ä»¶ãæçµçã«æºãããããŸã§å®è¡ã延æããããã«ãã¯ãŒã«ãŒã¯ã¡ãã»ãŒãžãç¶ç¶çã«åãã¥ãŒã€ã³ã°ããã ãã ãšæããŸãã ãã¥ãŒã®æŠå¿µã¯ãã¡ãã»ãŒãžãå°çãããšããã«é ä¿¡ããããšã§ãããã®ãããã¯ãŒã«ãŒã¯ã¡ãã»ãŒãžã調ã¹ãŠãåãã¥ãŒã€ã³ã°ããã ãã§ãã
ããã¯ç§ã®æšæž¬ã§ããããšã«æ³šæããŠãã ãããç§ã¯ETAå®è£ ã®å éšãå®éã«ã¯èªèããŠããŸããã
@zivsu ãäžèšã®ããã«ã visibility_timeout
ã_éåžžã«_倧ããªæ°å€ã«èšå®ããŸããããããã§çç¶ã¯è§£æ±ºããããã§ãã ãã ãã @ georgepsarakisãææããŠããããã«ãããã¯äžé©åãªã¢ãããŒãã®ããã§ãã
å ã®åé¡ã®åå ããé©åã«å¯ŸåŠããæ¹æ³ãããããŸããã
@jenstroegerããã°ãèªãã ã®ã§ããã visibility_timeout
ãå€æŽããŠãåé¡ãå®å
šã«è§£æ±ºã§ããªããããããŒã«ãŒãrabbitmq
ã«å€æŽããŸãã
@zivsu ãããã°ãžã®ãªã³ã¯ãæããŠããã ããŸããïŒ ä»¥åã«Redisã䜿çšããŸãããïŒ
@jenstroegerããã°ãèŠã€ãããŸããã以åãRedisããããŒã«ãŒãšããŠäœ¿çšããŠããŸããã ã¹ã±ãžã¥ãŒã«ã¿ã¹ã¯ã§ã¯ããšã©ãŒãåçºããªãããã«rebbitmqãéžæããŸãã
ç§ã¯ãŸã£ããåãåé¡ãæ±ããŠããŸããç§ã®èšå®ã¯æ¬¡ã®ãšããã§ãïŒ
django == 1.11.6
ã»ããª==4.2rc2
django-celery-beat == 1.0.1
èšå®ïŒ
CELERY_ENABLE_UTC = True
# CELERY_TIMEZONE = 'America/Los_Angeles'
ãããŠãããããã®èšå®ã®å¯äžã®æå¹ãªçµã¿åããã§ãã ãŸããUTCã¿ã€ã ãŸãŒã³ã§å®æçãªã¿ã¹ã¯ãã¹ã±ãžã¥ãŒã«ããå¿
èŠããããŸãã
CELERY_TIMEZONE
ãæå¹ã«ãããã CELERY_ENABLE_UTC
ãç¡å¹ã«ãããšãå®æçãªã¿ã¹ã¯ã®å®è¡ãè€æ°åéå§ãããŸãã
ä¿åã«åé¡ããããŸãã redisããããŒã«ãŒãšããŠäœ¿çšããå Žåãetaã¿ã¹ã¯ã¯è€æ°åå®è¡ããŸãã
ããã解決ããæ¹æ³ã
ãããŒã«ãŒãredisããrabbitmqã«å€æŽãããšããã®åé¡ã解決ããããã«èŠããŸãã
redisã䜿çšãããšãUTC以å€ã®ã¿ã€ã ãŸãŒã³ãæå®ãããšãã«ããç¥ãããŠããåé¡ããããŸãã ãã®åé¡ãåé¿ããã«ã¯ãããã©ã«ãã¢ããªããµãã¯ã©ã¹åããç¬èªã®ã¿ã€ã ãŸãŒã³åŠçé¢æ°ãè¿œå ããŸãã
from celery import Celery
class MyAppCelery(Celery):
def now(self):
"""Return the current time and date as a datetime."""
from datetime import datetime
return datetime.now(self.timezone)
ãã®åé¡ã«çŽé¢ããŠããä»ã®äººã®å©ãã«ãªãããšãé¡ã£ãŠããŸãã
ãã«ãã³ã¢ãã·ã³ã§ããŒãã䜿çšããŠã»ããªãžã§ããé »ç¹ã«åèµ·åãããšããã®åé¡ãçºçããããšããããŸãã ç§ã¯ããã解決ããããã«ps aux | grep celery
ã次ã«kill <each_pid>
ãå®è¡ããç¿æ
£ã身ã«ã€ããŸããã
ç§ãæã£ãŠããæåã®ã¢ããã€ã¹ã¯ããã·ã³ããåæããåã«ãåžžã«ãrestartDONEãã¡ãã»ãŒãžã衚瀺ãããããšã確èªããããšã§ãã
{"log":"INFO 2018-10-09 17:41:08,468 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T17:41:08.468912644Z"}
{"log":"INFO 2018-10-09 17:41:08,468 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T17:41:08.468955918Z"}
{"log":"INFO 2018-10-09 19:46:04,293 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T19:46:04.293780045Z"}
{"log":"INFO 2018-10-09 19:46:04,293 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T19:46:04.293953621Z"}
{"log":"INFO 2018-10-09 20:46:04,802 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T20:46:04.802819711Z"}
{"log":"INFO 2018-10-09 20:46:04,802 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T20:46:04.802974829Z"}
{"log":"INFO 2018-10-09 21:46:05,335 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T21:46:05.336081133Z"}
{"log":"INFO 2018-10-09 21:46:05,335 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T21:46:05.336107517Z"}
{"log":"INFO 2018-10-09 22:46:05,900 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T22:46:05.901078395Z"}
{"log":"INFO 2018-10-09 22:46:05,900 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T22:46:05.901173663Z"}
{"log":"INFO 2018-10-09 23:46:06,484 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T23:46:06.485276904Z"}
{"log":"INFO 2018-10-09 23:46:06,484 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-09T23:46:06.485415253Z"}
{"log":"INFO 2018-10-10 00:46:07,072 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-10T00:46:07.072529828Z"}
{"log":"INFO 2018-10-10 00:46:07,072 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-10T00:46:07.072587887Z"}
{"log":"INFO 2018-10-10 01:46:07,602 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-10T01:46:07.60325321Z"}
{"log":"INFO 2018-10-10 01:46:07,602 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-10T01:46:07.603327426Z"}
{"log":"INFO 2018-10-10 02:46:08,155 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-10T02:46:08.155868992Z"}
{"log":"INFO 2018-10-10 02:46:08,155 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-10T02:46:08.155921893Z"}
{"log":"INFO 2018-10-10 03:46:08,753 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-10T03:46:08.75401387Z"}
{"log":"INFO 2018-10-10 03:46:08,753 strategy celery.worker.strategy 1 140031597243208 Received task: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] ETA:[2018-10-10 04:00:00+00:00] \n","stream":"stderr","time":"2018-10-10T03:46:08.754056891Z"}
{"log":"DEBUG 2018-10-10 04:00:00,013 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:70\n","stream":"stderr","time":"2018-10-10T04:00:00.013548928Z"}
{"log":"DEBUG 2018-10-10 04:00:00,013 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:70\n","stream":"stderr","time":"2018-10-10T04:00:00.013592318Z"}
{"log":"DEBUG 2018-10-10 04:00:00,013 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:71\n","stream":"stderr","time":"2018-10-10T04:00:00.014000106Z"}
{"log":"DEBUG 2018-10-10 04:00:00,013 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:71\n","stream":"stderr","time":"2018-10-10T04:00:00.014167558Z"}
{"log":"DEBUG 2018-10-10 04:00:00,014 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:64\n","stream":"stderr","time":"2018-10-10T04:00:00.014661348Z"}
{"log":"DEBUG 2018-10-10 04:00:00,014 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:64\n","stream":"stderr","time":"2018-10-10T04:00:00.014684354Z"}
{"log":"DEBUG 2018-10-10 04:00:00,014 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:65\n","stream":"stderr","time":"2018-10-10T04:00:00.01514884Z"}
{"log":"DEBUG 2018-10-10 04:00:00,014 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:65\n","stream":"stderr","time":"2018-10-10T04:00:00.015249646Z"}
{"log":"DEBUG 2018-10-10 04:00:00,015 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:66\n","stream":"stderr","time":"2018-10-10T04:00:00.01571124Z"}
{"log":"DEBUG 2018-10-10 04:00:00,015 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:66\n","stream":"stderr","time":"2018-10-10T04:00:00.01580249Z"}
{"log":"DEBUG 2018-10-10 04:00:00,019 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:68\n","stream":"stderr","time":"2018-10-10T04:00:00.019260948Z"}
{"log":"DEBUG 2018-10-10 04:00:00,019 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:68\n","stream":"stderr","time":"2018-10-10T04:00:00.019322151Z"}
{"log":"DEBUG 2018-10-10 04:00:00,245 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:70\n","stream":"stderr","time":"2018-10-10T04:00:00.245159563Z"}
{"log":"DEBUG 2018-10-10 04:00:00,245 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:70\n","stream":"stderr","time":"2018-10-10T04:00:00.245177267Z"}
{"log":"DEBUG 2018-10-10 04:00:00,245 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:67\n","stream":"stderr","time":"2018-10-10T04:00:00.245338722Z"}
{"log":"DEBUG 2018-10-10 04:00:00,245 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:67\n","stream":"stderr","time":"2018-10-10T04:00:00.245351289Z"}
{"log":"DEBUG 2018-10-10 04:00:00,256 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:65\n","stream":"stderr","time":"2018-10-10T04:00:00.256770035Z"}
{"log":"DEBUG 2018-10-10 04:00:00,256 request celery.worker.request 1 140031597243208 Task accepted: main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] pid:65\n","stream":"stderr","time":"2018-10-10T04:00:00.256788689Z"}
{"log":"INFO 2018-10-10 04:00:00,371 trace celery.app.trace 68 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.35710329699213617s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.371967002Z"}
{"log":"INFO 2018-10-10 04:00:00,371 trace celery.app.trace 68 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.35710329699213617s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.371983293Z"}
{"log":"INFO 2018-10-10 04:00:00,387 trace celery.app.trace 69 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.10637873200175818s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.388119538Z"}
{"log":"INFO 2018-10-10 04:00:00,387 trace celery.app.trace 69 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.10637873200175818s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.388166317Z"}
{"log":"INFO 2018-10-10 04:00:00,404 trace celery.app.trace 70 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.16254851799749304s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.404834545Z"}
{"log":"INFO 2018-10-10 04:00:00,404 trace celery.app.trace 70 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.16254851799749304s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.404862208Z"}
{"log":"INFO 2018-10-10 04:00:00,421 trace celery.app.trace 65 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.1654666289978195s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.421607856Z"}
{"log":"INFO 2018-10-10 04:00:00,421 trace celery.app.trace 65 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.1654666289978195s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.421674687Z"}
{"log":"INFO 2018-10-10 04:00:00,438 trace celery.app.trace 67 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.19588526099687442s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.438295459Z"}
{"log":"INFO 2018-10-10 04:00:00,438 trace celery.app.trace 67 140031597243208 Task main.batch.sendspam[2a6e5dc8-5fd2-40bd-8f65-7e7334a14b3f] succeeded in 0.19588526099687442s: None\n","stream":"stderr","time":"2018-10-10T04:00:00.438311386Z"}
...
åä¿¡ããã¿ã¹ã¯ã®ã¿ã€ã ã¹ã¿ã³ãã確èªãããšã1æéããšã«åãIDã®æ°ããã¿ã¹ã¯ãååŸãããŸãã ãã®çµæããã¹ãŠã®ETAã¡ãã»ãŒãžã10å以äžéä¿¡ãããŸãã ETAã䜿çšããå Žåã¯rabbitmqãå¯äžã®ãªãã·ã§ã³ã®ããã§ã
æè¿ãåæ§ã®ãã°ã«ééããŸãã ãŸãps aux | grep celery
ã¯ãã¯ãŒã«ãŒãéå§ããããã2åå€ãããã»ã¹ã瀺ããŸããã ã³ãã³ãèµ·åã»ããªã¯ãŒã«ãŒã«ãã©ã¡ãŒã¿ãŒ--pool gevent
ãè¿œå ãããšãããã»ã¹æ°ãéå§ã¯ãŒã«ãŒã®æ£ç¢ºãªæ°ãšã»ããªããŒãã«æžå°ããŸããã ãããŠä»ãç§ã¯èªåã®ã¿ã¹ã¯ã®å®è¡ãç¡é§ã«ããŠããŸãã
å¥ã®è§£æ±ºçã¯ãackãšãã¥ã¬ãŒã·ã§ã³ãå®å
šã«ç¡å¹ã«ããããšã§ããããïŒ ã€ãŸã"broker_transport_options": {"ack_emulation": False}
ã çæéã®ã¿ã¹ã¯/ã«ãŠã³ãããŠã³ã®æ¬ ç¹ã¯ãããŸããïŒ
誰ããä¿®æ£ãååŸããŸãããïŒ
åãåé¡ã«çŽé¢ããŠããŸããããã«å¯Ÿãã解決çã¯ãããŸããïŒ
ãã³ãã³ã°ãåãåé¡ã
ããã§ãåãåé¡ããããRedisããããŒã«ãŒãšããŠäœ¿çšããŠããŸãã
$ pipenv graph --bare | grep -i "redis\|celery"
---
channels-redis==2.4.0
- aioredis [required: ~=1.0, installed: 1.3.0]
- hiredis [required: Any, installed: 1.0.0]
django-celery-beat==1.5.0
django-celery-results==1.1.2
- celery [required: >=4.3,<5.0, installed: 4.3.0]
- celery [required: >=3.1.0, installed: 4.3.0]
- pylint-celery [required: ==0.3, installed: 0.3]
redis==3.2.1
ããã§ãåãåé¡ããããŸãã ã»ããªããŒãžã§ã³4.3.0
celery = CeleryïŒ'tasks'ãbroker ='pyamqpïŒ// nosdïŒsdsd @ rabit //'ãconfig_from_object = {"broker_transport_options"ïŒ{'visibility_timeout'ïŒ18000}}ïŒ
ã¯ãŒã«ãŒãå®è¡ããããã«äœ¿çšããã³ãã³ã
celery-Aã¿ã¹ã¯ã¯ãŒã«ãŒ--pidfile=/tmp/celery_worker.pid -f = /tmp/celery_worker.log -Q celery_queue --loglevel = info --pool = solo --concurrency = 1 -n worker_celery --detach - without-gossip --without-mingle --without-heartbeat
celery == 4.4.0rc4ãè©ŠããŠã¿ãŸãããïŒ
Celeryã¯ãåãã¿ã¹ã¯IDãåæã«äœ¿çšããŠãåãã¿ã¹ã¯ã2ååä¿¡ããŠããŸãã
ããããã°ã§ã
[2019-11-29 08:07:35,464: INFO/MainProcess] Received task: app.jobs.booking.bookFlightTask[657985d5-c3a3-438d-a524-dbb129529443]
[2019-11-29 08:07:35,465: INFO/MainProcess] Received task: app.jobs.booking.bookFlightTask[657985d5-c3a3-438d-a524-dbb129529443]
[2019-11-29 08:07:35,471: WARNING/ForkPoolWorker-4] in booking funtion1
[2019-11-29 08:07:35,473: WARNING/ForkPoolWorker-3] in booking funtion1
[2019-11-29 08:07:35,537: WARNING/ForkPoolWorker-3] book_request_pp
[2019-11-29 08:07:35,543: WARNING/ForkPoolWorker-4] book_request_pp
äž¡æ¹ãåæã«å®è¡ãããŠããŸãã
celery == 4.4.0rc4ãboto3 == 1.9.232ãkombu == 4.6.6ã䜿çšããPythonãã©ã¹ã³ã§SQSã䜿çšããŸãã
SQSã§ã¯ãããã©ã«ãã®å¯èŠæ§ã¿ã€ã ã¢ãŠãã¯30åã§ãããç§ã®ã¿ã¹ã¯ã«ã¯ETAããªããackããããŸããã
ã®ãããªå®è¡äžã®åŽåè
ã
ã»ããªã¯ãŒã«ãŒ-Aapp.jobs.run-l info --pidfile = / var / run / celery / celery.pid --logfile = / var / log / celery / celery.log --time-limit = 7200 --concurrency = 8
@auvipy ãã©ããªå©ãã§ãçŽ æŽãããã§ãããã
ã©ã®ãããŒã«ãŒãšçµæã®ããã¯ãšã³ãã䜿çšããŠããŸããïŒ å¥ã®ããã¯ãšã³ãã«åãæ¿ããŠã¿ãŠãã ããã
ã©ã®ãããŒã«ãŒãšçµæã®ããã¯ãšã³ãã䜿çšããŠããŸããïŒ å¥ã®ããã¯ãšã³ãã«åãæ¿ããŠã¿ãŠãã ããã
SQSã䜿çšãããšãçµæã®ããã¯ãšã³ãã¯MYSQLã§ãããsqlalchemyã䜿çšããŸãã
詳现ã¯SOã httpsïŒ//stackoverflow.com/questions/59123536/celery-is-receiveing-same-task-twice-with-same-task-id-at-same-timeã«ãããŸã
@auvipyã芧ãã ããã
@thedrowãã«ãŒã ããŒã°ã§ãã®åé¡ã«çŽé¢ããŠããŸããïŒ
@ nitish-itiliteïŒã»ããªã«ã©ã®ã¿ã€ã ãŸãŒã³ã䜿çšããŠããŸããïŒ
@ nitish-itiliteïŒã»ããªã«ã©ã®ã¿ã€ã ãŸãŒã³ã䜿çšããŠããŸããïŒ
ããã©ã«ãã®UTCã§ãã å¹³æ¹ã§ã¯ãå°åã¯ãã®ç±³åœæ±éšïŒããŒãžãã¢å·åéšïŒã§ãã
SQSã§ã»ããªãå®è¡ããŠããåæ§ã®ã±ãŒã¹ããããŸããã countdown=60
ã§ãããŒã¿ã¹ã¯ãå®è¡ããŸããããSQSã®å¯èŠæ§ã¿ã€ã ã¢ãŠãã¯30ç§ã§ãã ãããç§ãåŸããã®ã§ãïŒ
泚ïŒç§ã¯--concurrency=1
ã§ã»ããªãå§ããã®ã§ã2ã€ã®ã¹ã¬ããããããŸãããïŒ
[2020-02-18 14:46:32 +0000] [INFO] Received task: notification[b483a22f-31cc-4335-9709-86041baa8f05] ETA:[2020-02-18 14:47:31.898563+00:00]
[2020-02-18 14:47:02 +0000] [INFO] Received task: notification[b483a22f-31cc-4335-9709-86041baa8f05] ETA:[2020-02-18 14:47:31.898563+00:00]
[2020-02-18 14:47:32 +0000] [INFO] Task notification[b483a22f-31cc-4335-9709-86041baa8f05] succeeded in 0.012232275999849662s: None
[2020-02-18 14:47:32 +0000] [INFO] Task notification[b483a22f-31cc-4335-9709-86041baa8f05] succeeded in 0.012890915997559205s: None
æç³»åã§äœãèµ·ãã£ãã®ãïŒ
inflight
ã¢ãŒãã§30ç§é眮ããŸããç§ã®æšæž¬ã§ã¯ãããã¯CeleryïŒïŒïŒã®ãã°ã§ãããã¡ãã»ãŒãžIDïŒ b483a22f-31cc-4335-9709-86041baa8f05
ïŒããã®ã¯ãŒã«ãŒã«ãã£ãŠãã§ã«ååŸãããŠãããã©ããã確èªããå¿
èŠããã£ããšæããŸãã
ã»ããªãåä¿¡ããã¿ã¹ã¯ãåŠçã«æå¹ãã©ãããå€æã§ããããã«ããã¹ãŠã®ã¡ãã»ãŒãžIDãå«ãããã·ã¥ãªã¹ããååšããå¯èœæ§ããããŸãã ã»ããªã¯ãããããããšãã§ããŸããïŒ
泚2ïŒ
ã¯ãŒã«ãŒãå®éã«æ»äº¡ããå Žåãã¡ãã»ãŒãžãå¥ã®ã¯ãŒã«ãŒã«ãã£ãŠååŸããããŸã§ã«æéããããããããããå¯èŠæ§ã®ã¿ã€ã ã¢ãŠããé·ãèšå®ããããšã¯ã§ããŸããã èšå®ãäœããããšããã®ç¶æ
ãçºçããŸãã
ããã¯ç§ã«ãèµ·ãã£ãŠããããã§ãã
[2020-05-11 15ïŒ31ïŒ23,673ïŒINFO / MainProcess]åä¿¡ããã¿ã¹ã¯ïŒee_external_attributes.tasksã recreate_specific_values [53046bd7-2a19-4f72-808f-d712eaecb0e8]
[2020-05-11 15ïŒ31ïŒ28,673ïŒINFO / MainProcess]åä¿¡ããã¿ã¹ã¯ïŒee_external_attributes.tasks.recreate_specific_values [53046bd7-2a19-4f72-808f-d712eaecb0e8]
ïŒå ¬éæçš¿çšã«ãã°ã®ã¿ã¹ã¯åã埮調æŽããŸãããïŒ
äžææ§ã®å¶çŽã«ããã1人ã®ã¯ãŒã«ãŒãã¿ã¹ã¯ã®éäžã§ãšã©ãŒãã¹ããŒãããã1人ã¯æåããŸãã
èšå®ããŠã¿ãŸããCELERY_WORKER_PREFETCH_MULTIPLIER = 1
ããã¯åœ¹ã«ç«ããªãã£ãããšãå€æããŸããã
ç§ã䜿çšããŠãã
ã»ããª==4.4.1
django-celery-results == 1.2.1
ãããŠããã¥ãŒã«AWSSQSã䜿çšããŠããŸãã
ç§ã«ã¯çè«ããããŸãã ã©ãããç§ã®ãã¥ãŒã®ãããã©ã«ãã®å¯èŠæ§ã¿ã€ã ã¢ãŠããèšå®ã¯5ç§ã«ããèšå®ãããŠããŸããã§ããã æåã®åŽåè ãæ»äº¡ãããšæ³å®ãããããæåã®åŽåè ãäœæ¥äžã«2çªç®ã®åŽåè ãä»äºãåŒãæããå¯èœæ§ããããŸãã å¯èŠæ§ã®ã¿ã€ã ã¢ãŠãã2åã«å¢ãããŸããããããŸããã£ãŠããããã§ãã 8ã12ç§ãããã¿ã¹ã¯ããããããã£ãã®ã§ã2åã¯ããéããããããŸããã ããããããŸãããã°ãããã¯ããã解決ããŸãã
æåã®åŽåè ãæ»äº¡ãããšæ³å®ãããããæåã®åŽåè ãäœæ¥äžã«2çªç®ã®åŽåè ãä»äºãåŒãæããå¯èœæ§ããããŸãã
@JulieGoldberg ãããã¯ã»ããªãä»äºãåŠçããããã®åä»ãªæ¹æ³ã«ãªãã§ãããã Celeryã¯ãŒã«ãŒã¯ãå¥ã®ã¯ãŒã«ãŒããã¥ãŒããåãåºããŠã¢ã¯ãã£ãã«åŠçããŠãããžã§ããéå§ããªãã§ãã ããã ããã¯ã²ã©ãå£ãããšæããŸãã ïŒããããããã¯ã»ããªã§ããç§ã¯ããäœã«ãé©ããŠããŸããðïŒ
Kubernetesã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ã§ãåæ§ã®åé¡ãçºçããŸãã Kubernetesã€ã³ã¹ã¿ã³ã¹ã«ã¯ãRedisããã®ã¿ã¹ã¯ãæ¶è²»ãã10人ã®ã¯ãŒã«ãŒïŒã»ããªã¢ããªã€ã³ã¹ã¿ã³ã¹ïŒããããŸãã
çç¶ïŒ
ã»ããªåŽåè
ã¯ã30ååŸã«èšç»ãããETAã¿ã¹ã¯ãã¹ã±ãžã¥ãŒã«ããŸãã KubernetesããããããŒããŒã·ã§ã³ãããå ŽåïŒã¯ãŒã«ãŒãKubernetesã«ãã£ãŠåŒ·å¶çµäºãããå ŽåïŒããŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®æ°ããããŒãžã§ã³ããããã€ãããå ŽåïŒãã¹ãŠã®ã¯ãŒã«ãŒã匷å¶çµäºãããæ°ããã¯ãŒã«ãŒãäœæãããå ŽåïŒããã¹ãŠã®ã¯ãŒã«ãŒãã¹ã±ãžã¥ãŒã«ãããã¿ã¹ã¯ãå®è¡ããå®çŸ©ãããæéã«å®è¡ãéå§ããŸãã
ã¯ãŒã«ãŒã®å Žåã1幎ãŸã§ã®æ°æéã«ããã£ãŠvisibility_timeout
ã®ç°ãªãå€ãèšå®ããããšããŸããããçµæã¯åãã§ããã enable_utc = True
ã®èšå®ããŸãã¯worker_prefetch_multiplier = 1
ã®åæžã§ããåãåäœãéæãããŸããã
ããã誰ãã«åœ¹ç«ã€ãã©ããã¯ããããŸããããããã¯ç§ã®åé¡ã§ããïŒ
GETãä»ããŠããŒãžãããŒãããããšãã«å®è¡ãããŠããã¿ã¹ã¯ïŒã¬ããŒãçæïŒããããŸããã äœããã®çç±ã§ïŒãã¡ãã³ã³ãšé¢ä¿ããããŸãïŒãChromeã¯ããŒãžã®èªã¿èŸŒã¿ããšã«2ã€ã®GETãªã¯ãšã¹ããéä¿¡ããã¿ã¹ã¯ã2åããªã¬ãŒããŸãã
GETãªã¯ãšã¹ãã¯å¯äœçšããªãã¯ããªã®ã§ããã¹ãŠãã©ãŒã ã«å€æããŠéä¿¡ãããšãåé¡ã¯è§£æ±ºããŸããã
æåã®åŽåè ãæ»äº¡ãããšæ³å®ãããããæåã®åŽåè ãäœæ¥äžã«2çªç®ã®åŽåè ãä»äºãåŒãæããå¯èœæ§ããããŸãã
@JulieGoldberg ãããã¯ã»ããªãä»äºãåŠçããããã®åä»ãªæ¹æ³ã«ãªãã§ãããã Celeryã¯ãŒã«ãŒã¯ãå¥ã®ã¯ãŒã«ãŒããã¥ãŒããåãåºããŠã¢ã¯ãã£ãã«åŠçããŠãããžã§ããéå§ããªãã§ãã ããã ããã¯ã²ã©ãå£ãããšæããŸãã ïŒããããããã¯ã»ããªã§ããç§ã¯ããäœã«ãé©ããŠããŸããðïŒ
äžå¹³ãèšã代ããã«ã解決çãšPRãèãåºãããšã§ãåé¡ã®è§£æ±ºã«åœ¹ç«ãŠãããšãã§ããŸãã
Kubernetesã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ã§ãåæ§ã®åé¡ãçºçããŸãã Kubernetesã€ã³ã¹ã¿ã³ã¹ã«ã¯ãRedisããã®ã¿ã¹ã¯ãæ¶è²»ãã10人ã®ã¯ãŒã«ãŒïŒã»ããªã¢ããªã€ã³ã¹ã¿ã³ã¹ïŒããããŸãã
çç¶ïŒ
ã»ããªåŽåè ã¯ã30ååŸã«èšç»ãããETAã¿ã¹ã¯ãã¹ã±ãžã¥ãŒã«ããŸãã KubernetesããããããŒããŒã·ã§ã³ãããå ŽåïŒã¯ãŒã«ãŒãKubernetesã«ãã£ãŠåŒ·å¶çµäºãããå ŽåïŒããŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®æ°ããããŒãžã§ã³ããããã€ãããå ŽåïŒãã¹ãŠã®ã¯ãŒã«ãŒã匷å¶çµäºãããæ°ããã¯ãŒã«ãŒãäœæãããå ŽåïŒããã¹ãŠã®ã¯ãŒã«ãŒãã¹ã±ãžã¥ãŒã«ãããã¿ã¹ã¯ãå®è¡ããå®çŸ©ãããæéã«å®è¡ãéå§ããŸãã
@elMateso k8sïŒãããäžã®ã³ã³ã·ã¥ãŒããŒãšãã¥ãŒãšããŠã®redisïŒã§ã®Airflowã®ãããã€ã§åæ§ã®åé¡ã«çŽé¢ããŸããã ãããããããã€ã¡ã³ããå®å®ãããŠæåŸ
ã©ããã«æ©èœãããããšãã§ããŸãããããããããããã®ãã³ãã圹ç«ã€ã§ãããã
https://www.polidea.com/blog/application-scalability-kubernetes/#tips -for-hpa
ããã§åãããšã«çŽé¢ããŠããŸãã
å°ãªããšãç§ã«ãšã£ãŠã¯ãã¿ã€ãã³ã°æ§æïŒå¯èŠæ§ã¿ã€ã ã¢ãŠããETAãªã©ïŒã«åé¡ã¯ãªãããã§ãã ç§ã®å Žåãå®è¡ã®éã«ãã€ã¯ãç§ãçºçããŸãã ã»ããªãå®éã«ã¡ãã»ãŒãžãACKããæ¹æ³ã¯èŠã€ãããŸããã§ããããrabbitMQã§å®å šã«æ©èœããŠããå Žåã¯ãRedisã®åæå®è¡æ§ãšACKã«åé¡ãããããã§ãã
åãåé¡ãçºçããŠãããRedisããããŒã«ãŒãšããŠã䜿çšããŠããŸãã rabbitMQã«å€æŽããããšã¯ç§ãã¡ã®éžæè¢ã§ã¯ãããŸããã
ã¿ã¹ã¯ã1åã ãå®è¡ãããããã«ããã¯ã䜿çšããããšãã人ã¯ããŸããïŒ ããã¯ããŸãããã§ããããïŒ
äŸïŒ https ïŒ//docs.celeryproject.org/en/latest/tutorials/task-cookbook.html#ensuring -a-task-is-only-executed-one-at-a-time
@ErikKalkokenç§ãã¡ã¯ãŸãã«ãããããããšã«ãªããŸãã
def semaphore(fn):
@wraps(fn)
def wrapper(self_origin, *args, **kwargs):
cache_name = f"{UID}-{args[0].request.id}-semaphore"
agreement_redis = AgreementsRedis()
if not agreement_redis.redis.set(cache_name, "", ex=30, nx=True):
Raise Exception("...")
try:
return fn(self_origin, *args, **kwargs)
finally:
agreement_redis.redis.delete(cache_name)
return wrapper
äžèšã®ã³ãŒãã¯ã»ããªã«ã¯äœ¿çšãããŠããŸããããã»ããªã®è€æ°ã®å®è¡ã¯åãããžãã¯ã§ãããtask_idãååŸããŠãã£ãã·ã¥ãèšå®ããã ãã§ãã ãããŸã§ã®ãšããæ£åžžã«åäœããŠããŸãã
誰ãããã®PRããã§ãã¯ã§ããŸããhttps://github.com/vinayinvicible/kombu/commit/a755ba14def558f2983b3ff3358086ba55521dcc
æãåèã«ãªãã³ã¡ã³ã
@georgepsarakisããã§ãã¿ã¹ã¯ãã¯ããã«å ã«ã¹ã±ãžã¥ãŒã«ãããŠããå Žåãç§ã¯äžèšãèŠããããããŸãããïŒ ãå¯èŠæ§ã¿ã€ã ã¢ãŠããã¯ããã«å¯ŸåŠããŸããïŒ ãªã³ã¯ããããã¥ã¡ã³ãããïŒ
ã€ãŸãã1æé以å ã«ã¯ãŒã«ãŒãã¿ã¹ã¯ã確èªããªãã£ãå ŽåïŒã€ãŸããå®è¡ããªãã£ãå ŽåïŒããã®ã¿ã¹ã¯ã¯ç¢ºèªããªãã£ãå¥ã®ã¯ãŒã«ãŒã«éä¿¡ãããŸããããã¥ã¡ã³ã; ãã®é¢é£ããåé¡https://github.com/celery/kombu/issues/337; ãŸãã¯ãã®ããã°ããã®åŒçšïŒ
visibility_timeout
ã31,540,000ç§ïŒ1幎ïŒã«èšå®ãããšãç°¡åã«ä¿®æ£ã§ããå¯èœæ§ããããŸãã