我有以下python脚本轮询sqs并处理任何被推送到队列的消息。我在终端中运行python process.py
并看到它按原样处理。
让此脚本在后台运行的最佳或首选方法是什么?
conn = boto.sqs.connect_to_region( REGION , aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
q = conn.get_queue( PROCESS_QUEUE )
def process_message(m):
# do some processing
# q.delete_message(m)
while 1:
q.set_message_class(RawMessage)
m = q.read(wait_time_seconds=20)
if m:
print 'processing...'
process_message(m, q)
time.sleep(10)
答案 0 :(得分:0)
您可以在此处使用bash
功能。
又快又脏:
正在运行python process.py &
会将其作为后台进程启动。
查看存储过程日志等的nohup
。
干净的方法:
使用supervisor
,它是某种服务管理器,允许您在后台运行守护进程。
查看docs,将其设置为不长,如果需要帮助则发表评论。