簡體   English   中英

如何使芹菜與SCL python和systemd一起使用?

[英]How to get celery to work with SCL python and systemd?

我有一個將芹菜用於后台任務的Python應用程序。 我使用SCL提供的Python解釋器。

我能夠為應用程序創建一個systemd單位文件: 如何通過systemd使用用戶的pipenv? 通過SCL安裝Python

但我不知道如何將類似的sytstemd單位文件放入芹菜。

我試過了:

[Unit]
Description=app celery service

# Requirements
Requires=network.target

# Dependency ordering
After=network.target

[Service]
# Let processes take awhile to start up
TimeoutStartSec=0
Type=forking

RestartSec=10
Restart=always

Environment="APP_SITE_SETTINGS=/home/app/.config/settings.cfg"
Environment="PYTHONPATH=/home/app/.local/lib/python3.6/site-packages"
WorkingDirectory=/home/app/app-site/app

User=app
Group=app
PermissionsStartOnly=true

KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

# Main process
ExecStart=/usr/bin/scl enable rh-python36 -- /home/app/.local/bin/pipenv run celery -A celery_service.celery worker

[Install]
WantedBy=multi-user.target

當我啟動systemd單元時,在日記中我看到celery應用程序啟動了。 幾秒鍾后,服務失敗。

Job for app_celery.service failed because a timeout was exceeded. See "systemctl status app_celery.service" and "journalctl -xe" for details.

這是日記條目:

Jul 17 07:43:31 some.host.com scl[5181]: worker: Cold shutdown (MainProcess)

我也嘗試過Type = oneshot和Type = simple。 他們都沒有工作。 我懷疑這與SCL有關。

有沒有辦法使celery應用程序與SCL和systemd一起使用?

Celery具有命令行選項--detach。 使用--detach時,Celery將啟動工作程序作為后台進程。

這是工作的systemd單位文件:

[Unit]
Description=app celery service

# Requirements
Requires=network.target

# Dependency ordering
After=network.target

[Service]
# Let processes take awhile to start up
TimeoutStartSec=0
Type=simple
RemainAfterExit=yes
RestartSec=10
Restart=always
Environment="SETTINGS=/home/app/.config/settings.cfg"
Environment="PYTHONPATH=/home/app/.local/lib/python3.6/site-packages"
WorkingDirectory=/home/app/app-site/app/

User=app
Group=app
PermissionsStartOnly=true

KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

LimitMEMLOCK=infinity
LimitNOFILE=20480
LimitNPROC=8192

# Main process
ExecStart=/usr/bin/scl enable rh-python36 -- /home/app/.local/bin/pipenv run celery -A celery_service.celery worker --detach

[Install]
WantedBy=multi-user.target

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM