草庐IT

celery-log

全部标签

python - 在同一台服务器上运行多个 celery 实例

我想在同一台机器上运行两个celery实例。一个用于我的应用程序的“A”版本,另一个用于“B”版本。我有两个实例,我是这样开始的:(env1)/home/me/firstapp$celery-Aapp.tasksworker--configceleryconfig(env2)/home/me/secondapp$celery-Aapp.tasksworker-nCarrot--configceleryconfig在每个应用程序的tasks.py中,我创建了一个这样的celery实例:celery=Celery('tasks',backend='amqp',broker='amqp://

python - 如何打开当前目录下的所有.txt和.log文件,搜索并打印搜索到的文件

我正在尝试在当前目录的所有文本和日志文件中搜索字符串。如果找到匹配项,则打印找到匹配项的文本或日志文件。这可能吗?我该如何操作下面的代码来完成这项任务?fiLe=open(logfile,"r")userString=raw_input("Enterastringnametosearch:")forlineinfiLe.readlines():ifuserStringinline:printline 最佳答案 像这样:importosdirectory=os.path.join("c:\\","path")forroot,dirs,

python - 如何列出 celery 中的排队项目?

我在UbuntuEC2节点上有一个Django项目,我一直使用它来使用Celery设置异步。我正在关注http://michal.karzynski.pl/blog/2014/05/18/setting-up-an-asynchronous-task-queue-for-django-using-celery-redis/连同文档。我已经能够在命令行上完成一项基本任务,使用:(env1)ubuntu@ip-172-31-22-65:~/projects/tp$celery--app=myproject.celery:appworker--loglevel=INFO我刚刚意识到,我的队列

python - 从数据库中断中恢复 Celery

我在Fedora机器上运行Celeryd/RabbitMQ,与MySQL通信数据库在一个单独的盒子上。我注意到,在极少数情况下,如果连接到MySQL数据库时甚至出现最轻微的问题(即使是几秒钟),celeryd会因错误而崩溃:OperationalError:(2003,"Can'tconnecttoMySQLserveron'mydatabasedomain'(111)")即使数据库再次可用,也无法重新连接。目前,我不得不手动重启celeryd服务来获取celery再次运行。有没有更优雅和自动的方式从这些类型的事件中恢复?celery有什么特点吗只是安静地等待,记录Operationa

python - celery 的过期选项不起作用

我正在玩Celery,我正在尝试使用CELERYBEAT_SCHEDULER执行周期性任务。这是我的配置:CELERY_TIMEZONE='Europe/Kiev'CELERYBEAT_SCHEDULE={'run-task-every-5-seconds':{'task':'tasks.run_every_five_seconds','schedule':timedelta(seconds=5),'options':{'expires':10,}},}#thetask@app.task()defrun_every_five_seconds():return'5secondspasse

python - 我将什么参数传递给 celery 的 get_task_logger() 函数?

celery3.xdocsonlogging建议像这样设置任务记录器:fromcelery.utils.logimportget_task_loggerlogger=get_task_logger(__name__)当我这样做时,CELERYD_TASK_LOG_FORMAT被忽略,日志语句使用CELERYD_LOG_FORMAT代替,我无法使用%(task_name)s和%(task_id)s。我的任务在我的应用myapp的模块tasks中。因此,__name__是myapp.tasks。我认为问题出在celery/utils/log.py中的这些行:defget_task_logg

python - Django 中所有 Celery worker/内存缓存的全局可访问对象

我有非常标准的Django+Rabbitmq+Celery设置,有1个Celery任务和5个worker。任务将相同(我简化了一点)大文件(~100MB)异步上传到多个远程PC。一切都以使用大量内存为代价运行良好,因为每个任务/工作人员都将那个大文件单独加载到内存中。我想做的是拥有某种缓存,所有任务都可以访问,即只加载一次文件。基于locmem的Django缓存将是完美的,但正如文档所说:“每个进程都有自己的私有(private)缓存实例”,我需要所有工作人员都可以访问此缓存。尝试使用#2129820中描述的Celery信号,但这不是我需要的。所以问题是:有没有一种方法可以在Celer

python - 我可以在 Celery 任务中使用通用的 logging.Logger() 吗?

医生说Aspecialloggerisavailablenamed“celery.task”,youcaninheritfromthisloggertoautomaticallygetthetasknameanduniqueidaspartofthelogs.这还不够。有更详细的信息吗?具体来说,它默认定义了哪些处理程序和格式字符串?我为什么要继承它?我可以改用通用的logging.Logger()吗?从celery任务(不是Django)记录到文件的最佳实践是什么?等谢谢。 最佳答案 CanIuseagenericlogging.

python - celery 任务中的grpc超时

我正在尝试在celery任务中连接到GRPC服务器。我有以下一段代码timeout=1host='0.tcp.ngrok.io'port='7145'channel=grpc.insecure_channel('{0}:{1}'.format(host,port))try:grpc.channel_ready_future(channel).result(timeout=timeout)exceptgrpc.FutureTimeoutError:sys.exit(1)stub=stub(channel)当我通过Pythonshell运行此代码段时,我能够建立连接并执行GRPC方法。但是

python - 在 O(log n) 时间内搜索旋转排序数组

我在thisproblem上遇到了困难在leetcode上。我不得不查找解决方案,因为出于某种原因,我的代码总是会出现一些问题。当在数组中查找不存在的目标数字时,我的当前代码仍然无限循环。如果有更直观的方法来解决这个问题并帮助修复我的代码,我正在寻求一些帮助来理解。我认为我不需要这一行:ifnums[mid]==targetornums[low]==targetornums[high]==target:returntarget我想知道我可以做些什么来确保如果我有一个包含1-3个数字的数组,我的代码可以找到目标而无需指定此条件语句。这里有几个例子print(search([1,2,3],