小编Arc*_*ain的帖子

Celery:了解大局

Celery 似乎是一个很棒的工具,但我很难理解各个 Celery 组件如何协同工作:

  • 工人
  • 应用程序
  • 任务
  • 消息代理(如 RabbitMQ)

据我了解,命令行:

celery -A not-clear-what-this-option-is worker
Run Code Online (Sandbox Code Playgroud)

应该运行某种芹菜“工作服务器”,它本身需要连接到代理服务器(我不太确定为什么需要这么多服务器)。

然后在任何 python 代码中,可以通过实例化应用程序将某些任务发送给工作人员:

app = Celery('my_module', broker='pyamqp://guest@localhost//')
Run Code Online (Sandbox Code Playgroud)

然后通过以下方式使用此应用程序装饰函数:

@app.tasks
def my_func():
    ...
Run Code Online (Sandbox Code Playgroud)

这样“my_func()”现在可以被称为“my_func.delay()”以异步方式运行。

这是我的问题:

  • 调用 my_func.delay() 时会发生什么?哪个服务器首先与哪个服务器通信?并将什么发送到哪里?
  • celery 命令的“-A”后面的选项是什么?这真的需要吗?
  • 假设我有一个进程 X,它实例化一个 Celery 应用程序来启动任务 A,并且假设我有另一个进程 Y,它想知道 X 启动的任务 A 的状态。我认为 Y 有一种方法可以做到这一点,但是我不知道怎么办。我认为 Y 应该创建自己的 Celery 应用程序实例。但是之后:
    • 在 Y 的 celery 应用程序中调用什么函数来获取此信息(以及进程 Y 内任务 A 的“标识符”是什么)?
    • 就通信而言,它是如何工作的,即请求何时通过 Broker,何时到达工作人员?

如果有人有关于这些问题的一些信息,我将不胜感激。我打算在 Django 项目中使用 Celery,其中对服务器的一些请求可以触发各种耗时的任务,和/或查询先前启动的任务的状态(待处理、已完成、错误等)。

python celery celery-task django-celery

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

如何在CSS中嵌套多个计数器?

我想用 CSS 嵌套两个不同的编号,以获得如下所示的自动编号:

1 节1

1-1 小节1

1-2 小节1

2 第2节

2-1 小节2

2-2 小节2

这是我实现这一目标的尝试:

<head>
    <style>
    body
    {
        counter-reset: sectioncount;
    }

    h1:before
    {
        counter-increment: sectioncount 1;
        counter-reset: subsectioncount;
        content: counter(sectioncount) " ";
    }

    h2:before
    {
        counter-increment: subsectioncount 1;
        content: counter(sectioncount) "-" counter(subsectioncount) " ";
    }
    </style>
</head>

<body>    
    <h1>Section1</h1>
    <h2>SubSection 1</h2>
    <h2>SubSection 2</h2>        
    <h1>Section2</h1>
    <h2>SubSection 1</h2>
    <h2>SubSection 2</h2>    
</body>
Run Code Online (Sandbox Code Playgroud)

但分段计数器不会增加。我不明白为什么以及如何解决这个问题。问题是:在 CSS 中实现此目的的正确方法是什么?

html css

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

如何制作错误的C程序段错误?

考虑以下两行C:

int a[1] = {0};
a[1] = 0;
Run Code Online (Sandbox Code Playgroud)

第二行在内存中的某个位置进行写访问.有时这些程序会在执行过程中产生段错误,有时则不会,这取决于我想要的环境,也可能是其他事情.

我想知道是否有办法尽可能地强制这些程序进行段错误(例如通过以特殊方式编译它们,或者在某些虚拟机中执行它们,我不知道).

这是出于教育目的.

c segmentation-fault

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

标签 统计

c ×1

celery ×1

celery-task ×1

css ×1

django-celery ×1

html ×1

python ×1

segmentation-fault ×1