草庐IT

commonPool-worker

全部标签

python - 运行连接到 Django 测试数据库的 Celery worker

背景:我正在开展一个项目,该项目使用Celery来安排将在未来特定时间运行的任务。这些任务插入最终状态机的状态向前发展。这是一个例子:计划在2天内向用户发送future提醒。当该计划任务运行时,会发送一封电子邮件,并且FSM会前进到下一个状态下一个状态是安排提醒在另外两天运行当这个任务运行时,它会发送另一封邮件,高级状态等等...我目前正在按照thisSOanswer的建议使用CELERY_ALWAYS_EAGER在测试中使用该技术的问题在于,本应在单独线程中运行的任务代码与调度它的线程在同一线程中运行。这会导致FSM状态无法正确保存,并且难以测试。我无法确定究竟是什么导致了它,但似乎

Python Celery - worker 忽略日志级别信息

我正在使用以下命令:celeryworker-linfo-Adjango_app--concurrency=10--autoreload但是DEBUG日志还是不断涌出,使用-lwarning和--logfile也是如此知道为什么Celery会忽略日志设置吗?更多详情:日志来自Python库suds,它使用DEBUG输出到记录器。 最佳答案 我遇到了同样的问题,我决定在settings.py中调整日志级别:LOGGING['loggers']['celery']={'handlers':['console',],'level':,'p

python - gunicorn gevent worker 修补了哪些功能?

我正在使用gunicorn运行一些flask和django应用程序,使用geventworker,有一些问题...首先,我假设因为gunicornfork并实例化我的进程,它会猴子修补标准模块,我不必自己调用monkey.patch_all,它已经为我完成,并且每个请求都作为greenlet运行,对吗?其次,这是重要的部分,gunicorn-gevent真的给猴子修补了哪些功能?当您使用gevent时,您始终可以选择要修补的功能(套接字、补丁、urllib)...所以,问题是,这些特性中的哪些是真的得到了gunicorn-gevent的猴子补丁?我如何更改此列表?例如,对monkey.

python - 不断从 celery worker 那里检索结果

我有一个web应用程序,我试图在其中使用celery从数据库加载后台任务。我目前正在根据要求加载数据库,但希望以每小时为间隔加载任务并让它们在后台工作。我正在使用flask并在python中编码。我也在运行redis。到目前为止,我已经使用celery让工作人员处理任务,并让节拍定期将任务发送给工作人员。但是我想从工作人员那里检索结果[一个数据框或查询],如果结果还没有准备好,那么它应该加载工作人员以前的结果。关于如何做到这一点有什么想法吗?编辑我正在使用sqlalchemy从数据库中检索结果,并在网页中呈现结果。我的主页上有各种链接,这些链接都指向不同的图表,我想在后台加载这些图表,

python - 一旦其中一个 worker 满足特定条件,就终止 Python 多处理程序

我正在使用其多处理模块编写Python程序。该程序调用许多辅助函数,每个辅助函数产生一个随机数。一旦其中一名worker产生了大于0.7的数字,我就需要终止程序。下面是我的程序,其中“如何做”部分尚未填写。任何想法?谢谢。importtimeimportnumpyasnpimportmultiprocessingasmpimporttimeimportsysdeff(i):np.random.seed(int(time.time()+i))time.sleep(3)res=np.random.rand()print"Fromi=",i,"res=",resifres>0.7:print

python - gunicorn 中 worker 和 worker_connections 的区别?

阅读Gunicorn的文档我看到两个参数,worker是WEB_CONCURRENCY的值,worker_connections是并发客户端的数量。Worker的数量会不会与它可以同时处理的客户数量相同?[假设worker类为gevent]。很明显我的假设是错误的,有人可以解释一下它们之间的区别吗? 最佳答案 workers—是一些用于处理请求的操作系统进程。默认等于WEB_CONCURRENCY环境变量的值,如果没有定义,默认为1。worker_connections—是在每个进程(对于“gevent”工作类)中允许的池中分组的事

python - celery worker 和命令行参数

我正在重构我的代码以使用celeryworker。之前我使用argparse来传递命令行参数。例如if__name__=="__main__":parser=argparse.ArgumentParser(description='Node')parser.add_argument('--environment',action="store",default='local',help="enve.g.productionofdevelopment")environment=arg_options.environment但现在我得到了这个错误。celery-Atasksworker--l

python - 使用 Celery 初始化带有参数的 worker

我在寻找对我来说似乎相对简单的东西时遇到了问题。我正在使用Celery3.1和Python3,我想用参数初始化我的工作人员,以便他们可以使用这些详细信息进行设置。具体而言:这些工作人员将执行需要使用身份验证凭据与第三方API交互的任务。工作人员有必要在执行任何任务之前将身份验证详细信息传递给API服务器(身份验证详细信息在第一次身份验证请求后存储在cookie中)。我想在工作人员从CLI启动时将这些登录凭据传递给工作人员。然后我希望工作人员使用它们进行身份验证并存储session以供在使用future任务时使用(理想情况下这将存储在可以从任务访问的属性中)。Celery可以吗?作为旁注

python - 为什么 Python Multiprocessing Workers 不会死?

我正在使用python多处理功能将某些功能映射到某些元素。类似这样的事情:defcomputeStuff(arguments,globalData,concurrent=True):pool=multiprocessing.Pool(initializer=initWorker,initargs=(globalData,))results=pool.map(workerFunction,list(enumerate(arguments)))returnresultsdefinitWorker(globalData):workerFunction.globalData=globalDat

python - 使用 worker 的多处理池

我编写了以下代码来让我懒惰的第二个CPU核心工作。代码所做的基本上是首先在目录层次结构中找到所需的“海”文件,然后执行一组外部脚本来处理这些二进制“海”文件,以生成50到100个文本和二进制文件。正如问题的标题所建议的那样,以并行方式提高处理速度。这个问题源于我们在IPython用户列表上进行的长时间讨论,标题为“Cannotstartipcluster”。从我对IPython的并行处理功能的实验开始。问题是我无法让这段代码正确运行。如果包含“sea”文件的文件夹仅包含“sea”文件,脚本将完成其执行而不完全执行外部脚本运行。(假设我有30-50个外部脚本要运行,但我的多处理启用脚本仅