ERROR: Pidfile (celerybeat.pid) already exists.

1246 단어 celery
celery beat를 시작할 때 오류가 발생했습니다.
(rpa2) E:rpa2>celery beat vx.x.x( ) (Cipater) is starting.
ERROR: Pidfile (celerybeat.pid) already exists.
Seems we're already running? (pid: 22220)
 * Restarting with stat

원인 트레이스:


celery beat가 실행될 때 두 개의 파일을 자동으로 만듭니다.
pidfile: 기본값은celerybeat입니다.pid, 프로젝트 루트 디렉터리에 저장합니다.
scheduler: 기본값은celerybeat-schedule입니다. 프로젝트 루트 디렉터리에 저장됩니다.
이 오류는 pidfile이 이미 존재했음을 설명합니다. 다음은 공식 설명입니다.
–pidfile
File used to store the process pid. Defaults to celerybeat.pid.
The program won’t start if this file already exists and the pid is still alive.
지난번에 실행되었을 때, 이미 자동으로 생성되었고, 프로세스가 끝날 때 자동으로 삭제하지 않아서, 다시 실행할 때 오류가 발생했습니다.
방법1: 이pidfile 파일을 직접 삭제하고celerybeat-> 실행 성공
방법2:celerybeat를 시작할 때 pidfile 파라미터를 설정하고 이 파라미터를 비워 두면 파일을 생성하지 않고 이 문제를 피할 수 있습니다.
celery beat -A celery_app -l info --pidfile=

총결산
celery beat는 실행할 때 현재pid를 기록하는 pidfile 파일을 생성합니다.이 파일은 프로세스가 끝나도 자동으로 삭제되지 않습니다.celery beat 프로세스를 다시 만들 때 이 파일이 존재하기 때문에 시작에 실패합니다.
해결 방법은 두 가지가 있습니다.
  • 시작하기 전에 이 파일이 있는지 확인하고 삭제된 후에 시작합니다
  • 시작할 때 빈 매개 변수를 지정하여 회피합니다
    celery -A manage.celery beat --pidfile=
     
  • 좋은 웹페이지 즐겨찾기