셀러리 작업자가 무한 시작 및 종료주기에 들어갑니다.

Tzenderman

저는 몇 년 동안 Redis를 결과 백엔드 및 브로커로 사용하는 Django 프로젝트에서 celery (python의 비동기 작업 대기열)를 사용해 왔습니다. 오늘 백엔드 / 브로커를 AWS의 ElastiCache Redis로 전환하려고 시도했지만 셀러리 작업자는 로그 파일에서 볼 수 있듯이 무한 시작 및 종료 주기로 전환됩니다. 또한 셀러리를 실행하는 동일한 머신에서 Redis 인스턴스에 성공적으로 연결하고 몇 가지 기본 SET 및 GET 작업을 성공적으로 수행했습니다.

내 현재 설정은 다음과 같습니다.

  • 운영체제 : Ubuntu 14.04
  • 파이썬 2.7.6
  • 셀러리 3.1.17
  • 다시마 3.0.37
  • 당구 3.3.0.23

명령:

celery worker --concurrency=3 --queues=general --events --loglevel=DEBUG --beat --schedule=/tmp/celerybeat-schedule --pidfile=/tmp/celery.main.pid --config=celeryconfig

celerconfig.py :

import os

from django.conf import settings
from celery import Celery, Task, chain

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')


celery = Celery()
celery.config_from_object("celeryconfig")
celery.autodiscover_tasks(settings.INSTALLED_APPS, related_name='tasks')

BROKER_URL = "redis://staging-redis.abcde.clustercfg.use1.cache.amazonaws.com:6379/0"

CELERY_TIMEZONE = u'America/Los_Angeles'
CELERYD_HIJACK_ROOT_LOGGER = True
CELERY_IMPORTS = (
    "app.tasks"
)
CELERYD_TASK_TIME_LIMIT = 35  # seconds
CELERYD_TASK_SOFT_TIME_LIMIT = 25  # seconds

DJANGO_SETTINGS_MODULE = "settings"
CELERY_RESULT_BACKEND = BROKER_URL

CELERY_ROUTES = {
    'app.tasks.my_task': {'queue': 'general'}
}

celery.log :

 -------------- celery@ip-10-20-21-9 v3.1.24 (Cipater)
---- **** -----
--- * ***  * -- Linux-3.13.0-74-generic-x86_64-with-Ubuntu-14.04-trusty
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app:         default:0x7f7dc6d71650 (.default.Loader)
- ** ---------- .> transport:   redis://staging-redis.abcde.clustercfg.use1.cache.amazonaws.com:6379/0
- ** ---------- .> results:     redis://staging-redis.abcde.clustercfg.use1.cache.amazonaws.com:6379/0
- *** --- * --- .> concurrency: 3 (prefork)
-- ******* ----
--- ***** ----- [queues]
 -------------- .> general exchange=general(direct) key=general


[tasks]
  . app.tasks.my_task
  . celery.backend_cleanup
  . celery.chain
  . celery.chord
  . celery.chord_unlock
  . celery.chunks
  . celery.group
  . celery.map
  . celery.starmap

[2017-06-16 14:33:12,658: DEBUG/MainProcess] removing tasks from inqueue until task handler finished
[2017-06-16 14:33:15,110: DEBUG/MainProcess] | Worker: Preparing bootsteps.
[2017-06-16 14:33:15,112: DEBUG/MainProcess] | Worker: Building graph...
[2017-06-16 14:33:15,113: DEBUG/MainProcess] | Worker: New boot order: {Timer, Hub, Queues (intra), Pool, Autoscaler, StateDB, Autoreloader, Beat, Consumer}
[2017-06-16 14:33:15,118: DEBUG/MainProcess] | Consumer: Preparing bootsteps.
[2017-06-16 14:33:15,118: DEBUG/MainProcess] | Consumer: Building graph...
[2017-06-16 14:33:15,127: DEBUG/MainProcess] | Consumer: New boot order: {Connection, Events, Mingle, Tasks, Control, Heart, Agent, Gossip, event loop}
[2017-06-16 14:33:15,137: DEBUG/MainProcess] | Worker: Starting Hub
[2017-06-16 14:33:15,137: DEBUG/MainProcess] ^-- substep ok
[2017-06-16 14:33:15,137: DEBUG/MainProcess] | Worker: Starting Pool
[2017-06-16 14:33:15,287: DEBUG/MainProcess] ^-- substep ok
[2017-06-16 14:33:15,288: DEBUG/MainProcess] | Worker: Starting Consumer
[2017-06-16 14:33:15,288: DEBUG/MainProcess] | Consumer: Starting Connection
[2017-06-16 14:33:15,315: INFO/MainProcess] Connected to redis://staging-redis.abcde.clustercfg.use1.cache.amazonaws.com:6379/0
[2017-06-16 14:33:15,315: DEBUG/MainProcess] ^-- substep ok
[2017-06-16 14:33:15,316: DEBUG/MainProcess] | Consumer: Starting Events
[2017-06-16 14:33:15,328: DEBUG/MainProcess] | Worker: Closing Hub...
[2017-06-16 14:33:15,328: DEBUG/MainProcess] | Worker: Closing Pool...
[2017-06-16 14:33:15,328: DEBUG/MainProcess] | Worker: Closing Consumer...
[2017-06-16 14:33:15,329: DEBUG/MainProcess] | Worker: Stopping Consumer...
[2017-06-16 14:33:15,329: DEBUG/MainProcess] | Worker: Stopping Pool...
[2017-06-16 14:33:16,338: DEBUG/MainProcess] | Worker: Stopping Hub...
[2017-06-16 14:33:16,338: DEBUG/MainProcess] | Consumer: Shutdown Gossip...
[2017-06-16 14:33:16,338: DEBUG/MainProcess] | Consumer: Shutdown Heart...
[2017-06-16 14:33:16,339: DEBUG/MainProcess] | Consumer: Shutdown Control...
[2017-06-16 14:33:16,339: DEBUG/MainProcess] | Consumer: Shutdown Tasks...
[2017-06-16 14:33:16,339: DEBUG/MainProcess] | Consumer: Shutdown Events...
[2017-06-16 14:33:16,340: DEBUG/MainProcess] | Consumer: Shutdown Connection...

 -------------- celery@ip-10-20-21-9 v3.1.24 (Cipater)
---- **** -----
--- * ***  * -- Linux-3.13.0-74-generic-x86_64-with-Ubuntu-14.04-trusty
-- * - **** ---
- ** ---------- [config]
- ** ---------- .> app:         default:0x7fdc3b019650 (.default.Loader)
- ** ---------- .> transport:   redis://staging-redis.abcde.clustercfg.use1.cache.amazonaws.com:6379/0
- ** ---------- .> results:     redis://staging-redis.abcde.clustercfg.use1.cache.amazonaws.com:6379/0
- *** --- * --- .> concurrency: 3 (prefork)
-- ******* ----
--- ***** ----- [queues]
 -------------- .> general exchange=general(direct) key=general


[tasks]
  . app.tasks.my_task
  . celery.backend_cleanup
  . celery.chain
  . celery.chord
  . celery.chord_unlock
  . celery.chunks
  . celery.group
  . celery.map
  . celery.starmap

[2017-06-16 14:33:12,658: DEBUG/MainProcess] removing tasks from inqueue until task handler finished
[2017-06-16 14:33:15,110: DEBUG/MainProcess] | Worker: Preparing bootsteps.
[2017-06-16 14:33:15,112: DEBUG/MainProcess] | Worker: Building graph...
[2017-06-16 14:33:15,113: DEBUG/MainProcess] | Worker: New boot order: {Timer, Hub, Queues (intra), Pool, Autoscaler, StateDB, Autoreloader, Beat, Consumer}
[2017-06-16 14:33:15,118: DEBUG/MainProcess] | Consumer: Preparing bootsteps.
[2017-06-16 14:33:15,118: DEBUG/MainProcess] | Consumer: Building graph...
[2017-06-16 14:33:15,127: DEBUG/MainProcess] | Consumer: New boot order: {Connection, Events, Mingle, Tasks, Control, Heart, Agent, Gossip, event loop}
[2017-06-16 14:33:15,137: DEBUG/MainProcess] | Worker: Starting Hub
[2017-06-16 14:33:15,137: DEBUG/MainProcess] ^-- substep ok
[2017-06-16 14:33:15,137: DEBUG/MainProcess] | Worker: Starting Pool
[2017-06-16 14:33:15,287: DEBUG/MainProcess] ^-- substep ok
[2017-06-16 14:33:15,288: DEBUG/MainProcess] | Worker: Starting Consumer
[2017-06-16 14:33:15,288: DEBUG/MainProcess] | Consumer: Starting Connection
[2017-06-16 14:33:15,315: INFO/MainProcess] Connected to redis://staging-redis.abcde.clustercfg.use1.cache.amazonaws.com:6379/0
[2017-06-16 14:33:15,315: DEBUG/MainProcess] ^-- substep ok
[2017-06-16 14:33:15,316: DEBUG/MainProcess] | Consumer: Starting Events
[2017-06-16 14:33:15,328: DEBUG/MainProcess] | Worker: Closing Hub...
[2017-06-16 14:33:15,328: DEBUG/MainProcess] | Worker: Closing Pool...
[2017-06-16 14:33:15,328: DEBUG/MainProcess] | Worker: Closing Consumer...
[2017-06-16 14:33:15,329: DEBUG/MainProcess] | Worker: Stopping Consumer...
[2017-06-16 14:33:15,329: DEBUG/MainProcess] | Worker: Stopping Pool...
[2017-06-16 14:33:16,338: DEBUG/MainProcess] | Worker: Stopping Hub...
[2017-06-16 14:33:16,338: DEBUG/MainProcess] | Consumer: Shutdown Gossip...
[2017-06-16 14:33:16,338: DEBUG/MainProcess] | Consumer: Shutdown Heart...
[2017-06-16 14:33:16,339: DEBUG/MainProcess] | Consumer: Shutdown Control...
[2017-06-16 14:33:16,339: DEBUG/MainProcess] | Consumer: Shutdown Tasks...
[2017-06-16 14:33:16,339: DEBUG/MainProcess] | Consumer: Shutdown Events...
[2017-06-16 14:33:16,340: DEBUG/MainProcess] | Consumer: Shutdown Connection...

## And again...
Tzenderman

Redis 클러스터를 즉시 지원되지 않는 브로커 및 백엔드로 사용하려고했기 때문에 문제가 발생한 것 같습니다.보다 기본적인 테스트 설정에서 SETNX명령이 셀러리 시작시 실패한 것 같습니다. Redis 클러스터에서 지원합니다.

Redis 클러스터를 셀러리 백엔드 및 브로커로 사용할 수 있는지 알아 보려면 여전히 몇 가지 조사를해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

셀러리 시작 작업자 및 한 번에 뛰기

분류에서Dev

셀러리 종료 작업자 및 작업 재시도

분류에서Dev

셀러리 작업자가 종료하기 전에 KeyboardInterrupt에서 몇 가지 작업을 수행합니다.

분류에서Dev

관리자가 아닌 계정에는 종료 및 다시 시작 권한이 없어야합니다.

분류에서Dev

다중 처리에서 셀러리 작업자 시작

분류에서Dev

다음 10주의 주 시작 및 종료 가져 오기

분류에서Dev

브로커에 대한 셀러리 작업자 소비자 연결 다시 시작

분류에서Dev

셀러리 작업자가 기다립니다

분류에서Dev

셀러리 플라워는 작업자를 종료 할 수 있지만 다시 시작할 수 없습니다.

분류에서Dev

종료하기 전에 동시 작업자가 완료 될 때까지 기다리십시오.

분류에서Dev

사용자가 셀러리 작업을 시작하고 작업이 완료되면 사용자에게 알립니다.

분류에서Dev

셀러리 3.1.18에서 작업 종료

분류에서Dev

스크립트 및 동시성에서 셀러리 작업자 실행

분류에서Dev

특정 달의 주어진 주 번호에 대한 시작 및 종료 날짜를 각도로 계산

분류에서Dev

주어진 날짜 레코드에서 시작 날짜 및 종료 날짜 열 만들기

분류에서Dev

작업을 브로커에 푸시 만하고 소비하지는 않는 셀러리 작업자를 시작하는 방법은 무엇입니까?

분류에서Dev

CPU 주파수가 Win10 작업 관리자 및 시스템 속성에서 다르게 표시되는 이유는 무엇입니까?

분류에서Dev

Rails, Heroku 및 Resque : 작업자가 무한 "작업"상태에 갇혀 있습니다.

분류에서Dev

주 번호에서 한주의 시작-종료일 찾기

분류에서Dev

Django 애플리케이션을 시작할 때 무기한으로 실행되는 싱글 톤 셀러리 작업을 어떻게 생성합니까?

분류에서Dev

셀러리 작업자는 분리되지 않은 경우에만 작업을 가져옵니다.

분류에서Dev

셀러리 작업에 대한 오류 결과 및 상태 실패를 수동으로 반환합니까?

분류에서Dev

FullCalendar의 주 및 일별보기에 대한 종료 시간 추가

분류에서Dev

종료 및 켜기와 Windows 8에서 다시 시작의 차이점은 무엇입니까?

분류에서Dev

자동 확장 : 인스턴스가 갑자기 시작 및 종료 됨 [AWS]

분류에서Dev

현재 분기 PHP에 대한 시작일 및 종료일 가져 오기

분류에서Dev

ServiceStack RedisPubSubServer는 OnStop, OnInit 및 OnStart에 자주 들어갑니다.

분류에서Dev

한 줄에서 두 명의 셀러리 작업자를 실행

분류에서Dev

작업 분할을위한 다중 스레드 셀러리 작업자

Related 관련 기사

  1. 1

    셀러리 시작 작업자 및 한 번에 뛰기

  2. 2

    셀러리 종료 작업자 및 작업 재시도

  3. 3

    셀러리 작업자가 종료하기 전에 KeyboardInterrupt에서 몇 가지 작업을 수행합니다.

  4. 4

    관리자가 아닌 계정에는 종료 및 다시 시작 권한이 없어야합니다.

  5. 5

    다중 처리에서 셀러리 작업자 시작

  6. 6

    다음 10주의 주 시작 및 종료 가져 오기

  7. 7

    브로커에 대한 셀러리 작업자 소비자 연결 다시 시작

  8. 8

    셀러리 작업자가 기다립니다

  9. 9

    셀러리 플라워는 작업자를 종료 할 수 있지만 다시 시작할 수 없습니다.

  10. 10

    종료하기 전에 동시 작업자가 완료 될 때까지 기다리십시오.

  11. 11

    사용자가 셀러리 작업을 시작하고 작업이 완료되면 사용자에게 알립니다.

  12. 12

    셀러리 3.1.18에서 작업 종료

  13. 13

    스크립트 및 동시성에서 셀러리 작업자 실행

  14. 14

    특정 달의 주어진 주 번호에 대한 시작 및 종료 날짜를 각도로 계산

  15. 15

    주어진 날짜 레코드에서 시작 날짜 및 종료 날짜 열 만들기

  16. 16

    작업을 브로커에 푸시 만하고 소비하지는 않는 셀러리 작업자를 시작하는 방법은 무엇입니까?

  17. 17

    CPU 주파수가 Win10 작업 관리자 및 시스템 속성에서 다르게 표시되는 이유는 무엇입니까?

  18. 18

    Rails, Heroku 및 Resque : 작업자가 무한 "작업"상태에 갇혀 있습니다.

  19. 19

    주 번호에서 한주의 시작-종료일 찾기

  20. 20

    Django 애플리케이션을 시작할 때 무기한으로 실행되는 싱글 톤 셀러리 작업을 어떻게 생성합니까?

  21. 21

    셀러리 작업자는 분리되지 않은 경우에만 작업을 가져옵니다.

  22. 22

    셀러리 작업에 대한 오류 결과 및 상태 실패를 수동으로 반환합니까?

  23. 23

    FullCalendar의 주 및 일별보기에 대한 종료 시간 추가

  24. 24

    종료 및 켜기와 Windows 8에서 다시 시작의 차이점은 무엇입니까?

  25. 25

    자동 확장 : 인스턴스가 갑자기 시작 및 종료 됨 [AWS]

  26. 26

    현재 분기 PHP에 대한 시작일 및 종료일 가져 오기

  27. 27

    ServiceStack RedisPubSubServer는 OnStop, OnInit 및 OnStart에 자주 들어갑니다.

  28. 28

    한 줄에서 두 명의 셀러리 작업자를 실행

  29. 29

    작업 분할을위한 다중 스레드 셀러리 작업자

뜨겁다태그

보관