juforg / celery-spring-boot-starter

Springboot starter for celery using celery-java, which is Java implementation of Celery client and worker.
MIT License
4 stars 0 forks source link

TaskResult.status can not transform from RPC #1

Closed lxd870911 closed 3 months ago

lxd870911 commented 1 year ago
celery== '5.3.4'

@Autowired
private CeleryTaskDistributor celeryTaskDistributor;

@DisplayName("Calling Python task from Java")
@ParameterizedTest
@ValueSource(strings = {"0798cbae3cd6d5ae9d62214e58f8ac2c"})
void testCallPythonTask(String projectId) throws Exception {
    Object result = celeryTaskDistributor.submit("linux.process_linux_task", new Object[]{projectId}).get(1, TimeUnit.HOURS);
    log.info(JSONUtil.parse(result).toJSONString(4));
}

com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type vip.appcity.celery.backends.TaskResult$Status from String "STARTED": not one of the values accepted for Enum class: [FAILURE, SUCCESS] at [Source: (byte[])"{"task_id": "2259fe99-05dc-4278-9a8a-cb211adbeaca", "status": "STARTED", "result": {"pid": 26848, "hostname": "celery@trenz-johnson"}, "traceback": null, "children": []}"; line: 1, column: 63] (through reference chain: vip.appcity.celery.backends.TaskResult["status"]) at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67) at com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1991) at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:1219) at com.fasterxml.jackson.databind.deser.std.EnumDeserializer._deserializeAltString(EnumDeserializer.java:356) at com.fasterxml.jackson.databind.deser.std.EnumDeserializer._fromString(EnumDeserializer.java:230) at com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize(EnumDeserializer.java:198) at com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:138) at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:314) at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177) at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3690) at vip.appcity.celery.backends.rabbit.RabbitResultConsumer.handleDelivery(RabbitResultConsumer.java:48) at com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:149) at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:104) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

verigle commented 5 months ago

where can I find class "CeleryTaskDistributor"

lxd870911 commented 4 months ago

where can I find class "CeleryTaskDistributor"

使用源码打包后的jar包就有CeleryTaskDistributor,版本号为1.2-SNAPSHOT

vip.appcity celery-spring-boot-starter 1.2-SNAPSHOT
juforg commented 3 months ago

https://github.com/juforg/celery-java 这个项目的历史原因吧,保留了原来的好多东西,这个问题10月份就修了,可能提交分支问题没有及时推送 vip/appcity/celery-core/1.11.0-SNAPSHOT