2017-10-10 11 views
0

mod_wsgi 데몬 프로세스를 사용하여 테스트 장고 사이트를 가지고 있고 연락처 양식을 전자 메일로 보내고 감독자를 설치하는 간단한 셀러리 작업을 설정했습니다.감독자와 함께 Ubuntu에서 샐러리 작업 실행하기

장고 코드가 정확한지 알고 있습니다.

내가 가지고있는 문제는 양식을 제출할 때 첫 번째 메시지 만 받는다는 것입니다. 이후에 연락 양식을 작성해도 전혀 메시지가 보내지지 않습니다.

내 서버에는 Django 서버를 사용하는 (즉 mod_wsgi를 사용하지 않는) 구성된 수퍼바이저 작업이있는 다른 테스트 사이트가 있습니다. 내가 여기

sudo supervisorctl status 

을 할 경우 내 작업을 모두 벌금을 실행하는 것은 내가 참고 MyUser

라고

/etc/supervisor/conf.d 

이 경우에 사용자에 저장되어있는 전술 한 작업에 대한 내 conf의 파일입니다 worker1에 @ %% 시간

command=/home/myuser/virtualenvs/another_test_project_env/bin/celery -A another_test_project worker --loglevel=INFO --concurrency=10 -n [email protected]%%h 
주의 -
[program:test_project] 
command=/home/myuser/virtualenvs/test_project_env/bin/celery -A test_project worker --loglevel=INFO --concurrency=10 -n [email protected]%%h 
directory=/home/myuser/djangoprojects/test_project 
user=myuser 
numprocs=1 
stdout_logfile=/var/log/celery/test_project.out.log 
stderr_logfile=/var/log/celery/test_project.err.log 
autostart=true 
autorestart=true 
startsecs=10 

; Need to wait for currently executing tasks to finish at shutdown. 
; Increase this if you have very long running tasks. 
stopwaitsecs = 600 

stopasgroup=true 

; Set Celery priority higher than default (999) 
; so, if rabbitmq is supervised, it will start first. 
priority=1000 

내 다른 테스트 사이트는 명령과이 세트가 있습니다

분명히 내 양식 만 제출된다는 점에서 뭔가 잘못되어 있습니다. 위에서 언급 한 out.log 파일을 보면 첫 번째 작업 만 볼 수 있으며 다른 양식 제출에는 아무것도 표시되지 않습니다.

미리 감사드립니다.

UPDATE 나는 전술 한 바와 같이 잠시 후 작업이 생성되지 않은, 다음 다른 하나를 받고, 한 오전 8시 32분 (GMT)에서 첫 번째 양식을 제출했다. 질문을 마친 직후, 나는 9.15에 양식을 다시 제출했고, 이것 때문에 과제가 만들어지고 메시지가 접수되었다. 그런 다음 양식을 다시 제출했지만 작업이 다시 작성되지 않았습니다. 희망이 도움이!

답변

0

당신이 시작한 근로자가 몇 명인지, 이전에 시작한 다른 근로자가 있고 그것을 죽이지 않으면 이전에 만든 작업자가 작업을 소비하므로 매 2 ~ 3 시간마다 더 많은) 시간은 단 하나의 작업 만받습니다. supervisord.conf이를

sudo supervisorctl -c /etc/supervisord/supervisord.conf stop all 

매번 및 설정 :

은 당신에 의해 셀러리를 중지해야

stopasgroup=true    ; send stop signal to the UNIX process group (default false) 

그렇지 않으면 것이다 메모리 누수 및 일반 작업 손실이 발생합니다. 당신이 가상 호스트에 rabbitmq 가상 호스트 설정하고 사용자를 추가해야합니다 : 당신이 멀티 장고 사이트가있는 경우


, 여기 RabbitMQ에 의한 데모 지원은 다른 가상 호스트를 사용

sudo rabbitmqctl add_vhost {vhost_name} 
sudo rabbitmqctl set_permissions -p {vhost_name} {username} ".*" ".*" ".*" 

및 다른 사이트 (그러나 수 동일한 사용자 사용). 이것을 장고 설정에 추가하십시오.평 :

BROKER_URL = 'amqp://username:[email protected]:5672/vhost_name' 

여기에 몇 가지 정보 :

Using celeryd as a daemon with multiple django apps?

Running multiple Django Celery websites on same server

Run Multiple Django Apps With Celery On One Server With Rabbitmq VHosts

Run Multiple Django Apps With Celery On One Server With Rabbitmq VHosts

+0

안녕하세요, 저에게 다시 연락해 주셔서 감사드립니다. 내 감독자 conf 파일에 이미 stopasagroup = true가 있습니다. RabbitMQ에 대한 귀하의 의견과 관련하여, 내가 vhosts를 사용하여 unbuntu를 실행하지 않기 때문에이 작업을 수행해야합니까? (즉, 나는 Plesk을 사용하지 않고있다.이 점에 대해 내 무지를 용서해주기 바란다.) 그동안 제공된 링크를 살펴 보겠습니다. 많은 감사합니다. – Newfoundland

+0

안녕하세요. 내가 준 지침을 따라 작동했습니다. 많은 감사합니다. 많은 감사를드립니다. – Newfoundland

+0

내 기쁨 .... – Ykh

관련 문제