按优先级和时间顺序对稍后执行的函数进行排队。

cs.later的Python项目详细描述


按优先级和时间顺序对稍后执行的函数进行排队。

我使用后面的对象方便地对 执行将在稍后按优先级顺序执行,并带有容量限制。

为什么不是期货? 在未来出现之前我就已经有了这个, 我更喜欢它的命名方案和接口, 而期货似乎并不支持优先执行。

使用非常简单:创建一个稍后的实例,通常是队列 使用.defer()方法的函数:

L = Later(4)      # a Later with a parallelism of 4
...
LF = L.defer(func, *args, **kwargs)
...
x = LF()          # collect result

.defer方法及其同级返回一个lateFunction, 它是cs.result.result的一个子类。 因此它是可调用的,所以要收集结果,只需调用lateFunction。

函数defer(func, *a, **kw)

稍后使用当前默认值对函数进行排队。 返回lateFunction。

LateFunction

mro:cs.result.Result
有关挂起函数的状态信息。 LateFunction是可调用的,因此可以这样执行同步调用:

def func():
  return 3
L = Later(4)
LF = L.defer()
x = LF()
print(x)        # prints 3

这样,如果调用的函数引发异常,则它是可见的:

LF = L.defer()
try:
  x = LF()
except SomeException as e:
  # handle the exception ...

避免使用try/except.wait()处理异常 应使用方法:

LF = L.defer()
x, exc_info = LF.wait()
if exc_info:
  # handle exception
  exc_type, exc_value, exc_traceback = exc_info
  ...
else:
  # use `x`, the function result

待办事项:.cancel(),等待超时()。

LatePool

subprocess.pool样式之后的上下文管理器 但延迟完成。

示例用法:

L = Later(4)    # a 4 thread Later
with LatePool(L) as LP:
  # several calls to LatePool.defer, perhaps looped
  LP.defer(func, *args, **kwargs)
  LP.defer(func, *args, **kwargs)
# now we can LP.join() to block for all LateFunctions
#
# or iterate over LP to collect LateFunctions as they complete
for LF in LP:
  result = LF()
  print(result)

Later

将函数调用排队以供以后执行的管理类。

提供方法以提交要尽快运行的函数或 在延迟或其他挂起的函数之后。这些方法 返回LateFunctions,cs.result.result的一个子类。

后面的实例的close方法关闭后面的 提交。 关闭并不意味着所有提交的函数 已完成,甚至已发送。 调用方可以等待完成,也可以选择取消函数。

todo:^ {STR 1 } $ Enter < /强>返回子节点,^ {STR 1 } $退出<强>关闭子节点。

待办事项:稍后删除全局默认值。

函数retry(retry_interval, func, *a, **kw)

使用提供的参数调用可调用的func。 如果它引发retryerror,则休眠(retry_interval)并调用 再次,直到它没有引发retryerror。

RetryError

mro:builtins.Exceptionbuiltins.BaseException
应重新提交到队列的函数引发的异常。

SubLater

一个使用现有的{{CD5>}管理延迟任务组的类。

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

推荐PyPI第三方库


热门话题
生成的代码为什么在无人机中使用Java是不安全的?   java实体继承和鉴别器列   java使用Struts 2中sj:datepicker的beforeShow事件   JavaMaven没有安装pom文件中的所有内容,导致“缺少必需的库”x124   java将自定义GIF从assets文件夹加载到recyclerview 安卓中   java实现稀疏数组   java在获得所需结果集后关闭连接对象   java在活动中将数组值添加到MClickListener()   java如何删除单元格工厂引用   java字符串。分号分隔   Java抽象和接口   java Intellij IDEA SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”   java改造JsonArray recyclerview异常   JavaJUnit@Theory:有没有方法抛出有意义的异常?   如何在Java中将XML内容写入字符串?