小编nin*_*ser的帖子

芹菜链不与批次一起使用

乍一看,我非常喜欢Celery中的"批量"功能,因为我需要在调用API之前对一定数量的ID进行分组(否则我可能会被踢掉).

不幸的是,在稍微测试一下时,批处理任务似乎与其他Canvas原语(在本例中为链)不能很好地兼容.例如:

@a.task(base=Batches, flush_every=10, flush_interval=5)
def get_price(requests):
    for request in requests:
        a.backend.mark_as_done(request.id, 42, request=request)
        print "filter_by_price " + str([r.args[0] for r in requests])

@a.task
def completed():
    print("complete")
Run Code Online (Sandbox Code Playgroud)

因此,通过这个简单的工作流程

chain(get_price.s("ID_1"), completed.si()).delay()
Run Code Online (Sandbox Code Playgroud)

我看到这个输出:

[2015-07-11 16:16:20,348: INFO/MainProcess] Connected to redis://localhost:6379/0
[2015-07-11 16:16:20,376: INFO/MainProcess] mingle: searching for neighbors
[2015-07-11 16:16:21,406: INFO/MainProcess] mingle: all alone
[2015-07-11 16:16:21,449: WARNING/MainProcess] celery@ultra ready.
[2015-07-11 16:16:34,093: WARNING/Worker-4] filter_by_price ['ID_1']
Run Code Online (Sandbox Code Playgroud)

5秒后,filter_by_price()会像预期的那样被触发.问题是completed()永远不会被调用.

有什么想法可以在这里发生?如果不使用批次,什么可能是一个解决这个问题的好方法?

PS:我已经CELERYD_PREFETCH_MULTIPLIER=0像文档说的那样设置了.

python rabbitmq celery celery-task

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

Maven部署+源分类器

我正在尝试使用分类器部署Maven工件.由于我需要源和JAR(我从GWT使用它),我想得到artifact-version-classifier.jarartifact-version-classifier-sources.jar.但是,它与编译的JAR一起工作正常,但是与源代码失败(输出源JAR的名称错误).

这是我到目前为止的配置:

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <classifier>prod</classifier>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <finalName>${project.build.finalName}-prod</finalName>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <configuration>
        <classifier>prod</classifier>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出mvn deploy:

Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-prod.jar
237K uploaded  (afip-connector-1.0-SNAPSHOT-prod.jar)
Run Code Online (Sandbox Code Playgroud)

但是这个名字有错:

Uploading: http://juicebox:8080/archiva/repository/snapshots//ar/com/nubing/afip-connector/1.0-SNAPSHOT/afip-connector-1.0-SNAPSHOT-sources.jar
228K uploaded  (afip-connector-1.0-SNAPSHOT-sources.jar)
Run Code Online (Sandbox Code Playgroud)

maven maven-source-plugin

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