HTTP是大部分互联网应用接口的首选协议,但是由于HTTP协议短连接且是单向请求(request/response)的特性,决定了调用方要获得实时结果,需要不断的轮询(Polling)服务接口。从而造成大量无意义的请求及服务器相应的开销。针对此现状,许多方案应运而生。比如基于XMPP pubsub的方案、基于HTTP的web-hook的方案、适合即时通讯的comet方案等。但是由于HTTP的简洁及标准的力量,上述方案都没有得到大规模的流行HTTP Polling的现状暂时无人能够改变。
可以通过指定目标函数和每次调用目标函数的参数可迭代对象来向进程池发出多个调用。可以通过以下函数实现这一点:map()、map_async()、imap()、imap_async()、starmap() 和 starmap_async()。
我们可以使用诸如 apply()
的函数向进程池发出临时任务,也可以使用诸如 map()
的函数将相同的函数应用于一个可迭代的项目集合。发出的任务的结果可以同步获取,或者可以稍后使用诸如 apply_async()
和 map_async()
的异步版本的函数获取任务的结果。
在使用进程池时,我们可能需要初始化一个变量、数据或资源,以便每个工作进程在执行其任务时都可以使用该资源。例如,可能需要为每个进程分配一个日志记录的句柄或连接到远程服务器的连接,并在执行任务时保持打开和重复使用。
我们需要一种方法,在执行任何任务之前,调用一个函数来初始化进程池中每个工作进程。