用于使用appengine任务的实用程序。受到延迟的启发。

appenginetaskutils的Python项目详细描述


#appengine task utils
这是appengine任务utils库的repo。它生成appenginetaskutils包

您可以在[此处]联机找到该包(https://pypi.python.org/pypi/appengineaskutils)。

您还需要设置自动售货机,请参见[此处的应用程序引擎自动售货机说明](https://cloud.google.com/app engine/docs/python/tools/using-libraries-python-27)。

此decorator函数设计用于替换[延迟](https://cloud.google.com/appengine/articles/deferred)。


对于taskutils.task,您需要将以下内容添加到app.yaml和/或\<;servicename \>;.yaml文件:

handlers:
-url://u ah/task/*
script:taskutils.app
login:admin


此规则为任务创建一个通用处理程序,以便将工作延迟到后台推送任务。

您的模块如下:

from taskutils import task


做一些事情…

只需正常调用函数,例如:



这是可能的,因为使用了[yccloudpickle](https://medium.com/the infinite machine/python-function-serialization-with-yccloudpickle-b2ff6b2ad5da.zei3n0ibu)作为底层序列化库。

包括其他函数:

def myouterfunction(mapf):

@task
def myinnerfunction(objects):
对于对象中的对象:
mapf(object)

…获取一些对象列表…
对于objects列表中的对象:
myinnerFunction(对象)


def dosomethingWithObject(对象):
…对某个对象执行操作…



正在后台对函数和参数进行序列化和反序列化。

将后台任务排队时,应用程序引擎任务和任务队列库可以接受一组参数。您可以将这些传递给装饰器:

@task(queue=“myqueue”,countdown=5)
def anotherfunction():
…做一些事情…

在**类google.appengine.api.taskqueue.task(payload=none,\*\*kwargs)**下,[此处](https://cloud.google.com/appengine/docs/python/refdocs/google.appengine.api.taskqueue)提供了任务所允许的参数的详细信息。task decorator支持两个额外的函数,具体如下。


做一些事情……

somefunction task=task(somefunction,queue=“myqueue”)


然后,当您准备好时可以调用task返回的函数:


somefunctiontask(1,2)


您也可以同时执行这两个步骤:



task(somefunction,queue=“myqueue”)(1,2)

例如:

@task(transactional=true)
def myserioustransactionaltask():


您还需要接受函数中的headers参数。

@task(includeheaders=true)
def myfunctionwithheaders(amount,headers):
…Stuff…

MyFunctionWithHeaders(10)


App Engine将有用信息以标题形式传递给您的任务,例如x-app engine-taskretrycount。


但是@task使用了一个形式为/\&ah/task/\<;module\>;/\<;function\>;的url,例如:

///u ah/task/mymodule/somefunction


,这使得调试更加容易。









欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java的单元测试测试用例库。util。列出实现   java通过超类进行序列化/反序列化   java Android获取设备语言ISO字符串   java如何打开广告的行动。移动   Eclipse IDE for(嵌入式C/C++)开发者202012:经典的深色主题深黑色背景和菜单中的文本   java使用不同的内容动态创建TableView(JavaFX)   java JAXB将多个同名节点解组   java ClassDefNotFoundException,即使类由类加载器加载(服务器上安装了多个应用程序)   java有没有办法关闭在后端生成的MqttClient线程?   html如何在网站上的java小程序中包含图像?   java无法访问已分配给超类引用的子类实例变量   java在TableViewer中双击打开对话框   列出如何创建ListNode。JAVA   java如何从文本中输出的数组中放入随机图像