小编Cla*_*diu的帖子

偶尔刷新 Flower 数据库和/或从 Docker 优雅退出?

我在 Docker 中运行 Celery Flower(有关详细信息,请参阅此问题)。命令最终是:

celery -A proj flower --persistent=True --db=/flower/flower
Run Code Online (Sandbox Code Playgroud)

我已经在/flower. 然而,看起来 Flower 从不向其数据库文件写入任何内容,即使在 30 分钟的正常运行时间之后(在此期间处理了大约 120 个任务):

-rw-r--r--  1 user user    0 Mar 11 00:08 flower.bak
-rw-r--r--  1 user user    0 Mar 10 23:29 flower.dat
-rw-r--r--  1 user user    0 Mar 11 00:08 flower.dir
Run Code Online (Sandbox Code Playgroud)

优雅地停止 Docker 容器是行不通的,因此 Docker 强行杀死它,这意味着最终没有任何内容被写入数据库,因此就好像没有任何内容被持久化。

有没有办法让 Flower 偶尔刷新它的数据库,或者更好的是,优雅地退出?

persistence celery docker flower docker-compose

2
推荐指数
1
解决办法
3091
查看次数

应用程序初始化后,有什么方法可以通过编程方式更改Celery配置?

我已经建立了一个测试环境,让Celery工人实际在其他进程中运行,以便可以测试我使用Celery的系统的全部功能。这样,任务实际上在工作进程中运行,并与测试运行器进行通信,因此我不需要CELERY_ALWAYS_EAGER测试此功能。

话虽这么说,在某些情况下,我有一些任务会触发其他任务,而无需关心它们的完成时间,并且我想创建测试来执行-即等待这些子任务完成。在这些情况下,最简单的方法似乎是急切地运行这些测试(即CELERY_ALWAYS_EAGER设置为true)。

但是,在Celery初始化之后,我看不到更改配置的直接方法...实际上,从源代码一瞥,似乎它假设一旦应用启动,配置就不会更改

这对于很多选项来说都是有意义的,因为工作人员将必须实际看到更改,而从主程序进行更改将无济于事。但是,对于CELERY_ALWAYS_EAGER,这对于主程序能够进行更改是有意义的。

是否有任何直接/得到充分支持的方式来做到这一点?如果不是,那么最好的方法不是太hacky?

另一个选择是使有问题的任务返回它开始时的任务ID,以便测试可以随后等待它们……但是我不赞成更改API以使其可运行的唯一目的。单元测试。

python testing configuration unit-testing celery

2
推荐指数
1
解决办法
1282
查看次数

python Google Cloud Function 中如何处理多线程/多进程?

我一直无法找到任何有关此的文档。如何处理在 Python 中的 Google Cloud 函数上运行多个线程?它是否根本无法工作(例如禁用线程模块),或者它的行为是否与单 CPU 环境中的线程正常情况一样?

类似地,对于多处理 - 它只是不起作用(例如,不允许您生成其他进程)还是它起作用,但又好像只有一个 CPU?

python google-cloud-functions

2
推荐指数
1
解决办法
3324
查看次数

Java类可访问性

与我的另一个问题略有关联:以下内容有何区别:

private class Joe
protected class Joe
public class Joe
class Joe
Run Code Online (Sandbox Code Playgroud)

再一次,最后两个之间的差异是我最感兴趣的.

java accessibility class

1
推荐指数
1
解决办法
9978
查看次数

为什么尾部调用优化需要垃圾收集?

为什么尾部调用优化需要垃圾收集?是因为如果你在一个你想要进行尾调用的函数中分配内存,那么就没有办法进行尾调用并重新获得那个内存?(因此必须保存堆栈,以便在尾调用后,可以回收内存.)

garbage-collection programming-languages tail-call-optimization

1
推荐指数
2
解决办法
624
查看次数

在Windows中,如何枚举并从另一个窗口的控件中获取文本?

更具体地说-我有另一个正在运行的应用程序的窗口句柄。该应用程序在TListControl.UnicodeClass某处包含一个控件(我从Winspector知道这一点)。如何使用Windows API和该窗口句柄浏览该列表控件中的所有项目,并从所有项目中获取文本?

您可以假设该语言是C / C ++,尽管我实际上将win32all用于python。引用适当的API调用会很棒。

python windows winapi controls

1
推荐指数
1
解决办法
1732
查看次数

PostgreSQL - 相关子查询失败?

我有这样的查询:

SELECT t1.id,
    (SELECT COUNT(t2.id)
     FROM t2
     WHERE t2.id = t1.id
          ) as num_things
FROM t1
WHERE num_things = 5;
Run Code Online (Sandbox Code Playgroud)

目标是获取在另一个表中出现5次的所有元素的id.但是,我收到此错误:

ERROR: column "num_things" does not exist
SQL state: 42703
Run Code Online (Sandbox Code Playgroud)

我可能在这里做些傻事,因为我对数据库有些新意.有没有办法修复此查询,以便我可以访问num_things?或者,如果没有,是否还有其他方法可以实现这一结果?

sql database postgresql subquery

1
推荐指数
1
解决办法
5100
查看次数

SQL - 在一个语句中使用查询结果作为另外两个查询的基础

我正在进行概率计算.我有一个查询来计算事件发生的总次数.从这些事件中,我想得到子事件发生的次数.获取总事件的查询长度为25行,我不想只复制+粘贴两次.

我想对此查询执行两项操作:计算其中的行数,并计算此查询的查询结果中的行数.现在,我能想到的唯一方法就是这样做(用复杂的查询替换@ total @来获取所有行,而@ conditions @用不太复杂的条件替换来自@ total @的行必须匹配子事件):

SELECT (SELECT COUNT(*) FROM (@total@) AS t1 WHERE @conditions@) AS suboccurs, 
       COUNT(*) AS totaloccurs FROM (@total@) as t2
Run Code Online (Sandbox Code Playgroud)

如你所知,@ total @重复两次.有没有办法解决?有没有更好的方法来做我想做的事情?

重新强调:@condition @取决于@otal @返回的内容(它确实如此t1.foo = bar).

最后的一些注意事项:@ total @本身需要~250ms.这个更复杂的查询需要大约300毫秒,因此postgres可能会进行一些优化.尽管如此,查询看起来非常难看,@ total @字面上粘贴了两次.

sql optimization nested count

1
推荐指数
1
解决办法
2万
查看次数

可数性问题(理论)

我明天要参加GRE,并有一个问题.根据答案键,此练习测试表明从N到{0,1}的所有函数的集合是不可数的.

你不能将自然数映射到这些函数,如下所示?

 i   1 2 3 4 5 6 7 8 ...
f0 = 0 0 0 0 0 0 0 0 ...
f1 = 1 0 0 0 0 0 0 0 ...
f2 = 0 1 0 0 0 0 0 0 ...
f3 = 1 1 0 0 0 0 0 0 ...
f4 = 0 0 1 0 0 0 0 0 ...
Run Code Online (Sandbox Code Playgroud)

即,f4(1)= 0,f4(2)= 0,f4(3)= 1,并且f4(其他任何东西)= 0.这最终会涵盖所有可能的这些功能吗?我们绝对可以将自然数映射到此集.

theory computer-science count set

1
推荐指数
1
解决办法
716
查看次数

如何使gtk中的两个元素具有相同的大小?

我正在使用pyGTK.我想布置一个大的元素,每边有2个较小的元素.出于美学原因,我希望2个较小的尺寸相同.实际上,它们相差几个像素,因此中间元素不会居中.

我尝试使用带有3个单元格的gtk.Table,但是uniform = True没有达到预期的效果.我尝试通过制作8个单元来搞乱它,然后让中心单元占用更多单元,但它不能很好地工作.有没有办法做到这一点?

python gtk layout pygtk

1
推荐指数
1
解决办法
144
查看次数