我正在googleappengine上开发一个python应用程序。我有一个CRON工作,每天从一个S3 bucket向一个GS bucket导入一个包含20个新文件的列表。你知道吗
这是我的密码:
import webapp2
import yaml
from google.appengine.ext import deferred
class CronTask(webapp2.RequestHandler):
def get(self):
with open('/my/config/file') as file:
config_dict = yaml.load(file_config_file)
for file_to_load in config_dict:
deferred.defer(my_import_function, file_to_load)
app = webapp2.WSGIApplication([
('/', CronTask)
], debug=True)
注意,my_import_function
是另一个包的一部分,需要一些时间来完成。你知道吗
我的问题是:在这个任务中使用函数deferred.defer
是一个好主意,还是我应该为所有参数分别启动my_import_function
?你知道吗
您应该使用taskqueue,但是根据您有多少任务,您可能不想使用
deferred.defer()
。你知道吗使用
deferred.defer()
,每次调用只能将一个任务排队。如果你在排队处理很多任务,那真的是效率低下。这真的很慢:有了大量的任务,这样做会更有效率:
大约一年前,我做了一个时间比较,后者至少比前者快一个数量级。你知道吗
相关问题 更多 >
编程相关推荐