2015-02-15 6 views
3

В чем разница между созданием потока в фоновом режиме и созданием задачи для него?Фоновый поток Google App Engine против задачи

Например, с резьбой:

tid = background_thread.start_new_background_thread(f, ["foo", "bar"]) 

И затем с заданием:

taskqueue.add(url='/worker', params={'key': key}) 

Каковы различия? Когда можно будет использовать другого? Существуют ли какие-либо преимущества использования задачи над фоном_thread (что кажется более простым в настройке)?

+0

Существует довольно низкий предел количества одновременных потоков фона, которые можно запустить. В то время как с задачами, ну, проверьте свою квоту задачи на приборной панели. –

+1

Фоновый поток будет работать только до тех пор, пока экземпляр, в котором он работает, находится вокруг и время жизни запроса или задачи, если вы не используете управляемый vm. Поток, порожденный запросом на фронт, может жить только в течение 60 секунд или до тех пор, пока запрос не будет завершен, который когда-либо будет первым. Фоновый поток для задачи может продолжаться только для жизни задачи или 10 минут, которые когда-либо были первыми. Перед управлением виртуальными машинами дольше не было никакого пути к какому-либо конкретному потоку. –

ответ

3

Самое большое различие заключается в том, что задачи выполняются независимо от любого другого кода, вы можете легко управлять своей скоростью обработки, их можно автоматически повторять, когда они терпят неудачу, и вы можете настроить их с помощью различных параметров, таких как ETA.

Вы можете сделать все это самостоятельно, конечно, но вам придется писать и тестировать много кода.