在芹菜中使用组链时的错误处理

时间:2018-11-17 14:26:04

标签: django celery celery-task celerybeat djcelery

我有100个任务。但是我一次只能处理4个任务。完成这4个任务后,我想运行下一组4个任务。 可以通过将任务分成4组,然后将它们链接起来来完成。 但是某些任务可能会在两者之间失败,因此我该如何处理这些错误并采取适当的措施,以便仅对失败的任务重试。 据我对链条的了解,如果一个任务失败,链条中的后续任务将不会运行。因此,如果我实现组链,则如果组中的任何任务失败,则整个链都将失败。 建议我为此使用一种适当的错误处理方法,对于实现此方法的任何更好的主意也将不胜感激。

我已禁用结果后端。

有点背景-我有一个使用celery-beat实现的cron,每30秒钟运行一次,一次可以拾取100个新任务。因此,所有这些链接和分组都必须在cron函数内部完成。

我正在使用芹菜3.1.25

1 个答案:

答案 0 :(得分:1)

如果任务是独立的,则不要将它们链接在一起。在{@ 3}}上针对特定队列的芹菜工作者,以使用@Override protected void configure(final HttpSecurity http) throws Exception { http .cors() .and() .csrf().disable() .exceptionHandling().authenticationEntryPoint(restAuthenticationEntryPoint) .and() .authorizeRequests() .antMatchers("/login*", "/success*").anonymous() .antMatchers("/auth/**", "/signup/**", "/css/*", "/webjars/**","/js/*","/image/*").permitAll() .anyRequest().authenticated() .and() .formLogin() .successHandler(mySuccessHandler) .failureHandler(myFailureHandler) .loginProcessingUrl("perform_login") .usernameParameter("username") .passwordParameter("password") .successForwardUrl("/tasks") .and() .logout() .logoutUrl("/logout") .logoutSuccessUrl("/logout-success").permitAll() .and() .apply(new SpringSocialConfigurer()); } curl -i -X POST -d username=admin -d password=admin http://localhost:8080/perform_login 将工作者人数限制为4。