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,设置时间不长,如有需要请评论。