1

下面是我如何穿线。

t = Thread(target=s3_upload, args=(absolute_write_path,raw_unique_key))
t.start()

这是线程中调用的函数。

def s3_upload(file_path,key):
    conn = S3.AWSAuthConnection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)

    #check if bucket exists, if not cr8 it
    if S3_BUCKET_CHECK:
        if not conn.check_bucket_exists(S3_BUCKET_NAME).status == 200:
            conn.create_located_bucket(S3_BUCKET_NAME, S3_LOCATION)

    orig_file = open(file_path, "r")
    obj = S3Object(orig_file.read())
    conn.put(S3_BUCKET_NAME, key, obj)
    os.remove(file_path)

如果我不在线程中运行它,它似乎可以工作。但是,如果我在线程中运行,它会一直运行到我执行 conn.put() 的行,并且不会从那里开始打印行。有谁知道为什么?

谢谢。

4

1 回答 1

0

好的解决了。问题是烧瓶的 def 守护进程值为 True。将其更改为 false(我认为是 def),现在它可以工作了:)

于 2012-06-25T05:19:26.893 回答