boto3 在后台检查新的 SQS 消息
boto3 check for new SQS messages in the background
我有以下 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)
您可以在此处使用 bash
功能。
又快又脏:
运行 python process.py &
将其作为后台进程启动。
查看 nohup
,它存储进程日志等
执行此操作的简洁方法:
使用 supervisor
,它是某种服务管理器,允许您在后台 运行 守护进程。
看看docs,设置时间不长,如有需要请评论。
我有以下 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)
您可以在此处使用 bash
功能。
又快又脏:
运行 python process.py &
将其作为后台进程启动。
查看 nohup
,它存储进程日志等
执行此操作的简洁方法:
使用 supervisor
,它是某种服务管理器,允许您在后台 运行 守护进程。
看看docs,设置时间不长,如有需要请评论。