我的spring boot微服务当前在Spring-Boot 2.2.9.RELEASE中运行
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
我也仍然使用
依赖性。
现在我想切换到Spring Boot 2.3.2.RELEASE。我可以编译代码而没有任何错误。启动服务后,我看到了
信息:HHH000490:使用JtaPlatform实现:[org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
日志消息。现在有错误。然后停止部署过程。什么都没发生。
目前,我不知道为什么它没有运行。有人给小费吗?
答案 0 :(得分:0)
我想我找到了问题。
from django.db import models
class Bundle(models.Model):
name = models.charField(max_length=100)
items = models.ManytoManyField(Item)
popularity = models.CharField(max_length=100)
def map_and_save(data=None):
if data is None:
return
if isinstance(data, list):
mapper = {"courses": ["items"], "description": "name", "popularity": "popularity"}
for datum in data:
bundle_data = {}
item_instances = []
for key, val in datum.items():
field_name = mapper.get(key, None)
if field_name is None:
continue
elif isinstance(field_name, list):
for _val in val:
item = Item.objects.create(name=_val.get("title"))
item_instances.append(item)
continue
bundle_data[field_name] = val
bundle = Bundle.objects.create(**bundle_data)
bundle.items.add(*item_instances)
class Item(models.Model):
name = models.charField(max_length=100)
provider = models.ForeignKey(provider,null=True, blank=False,on_delete=models.CASCADE, related_name="+")
比起我在代码中使用Exceutor:
@EnableEurekaClient
@EnableScheduling
@SpringBootApplication
@EnableAsync
public class AccountApplication {
public static void main(String[] args) {
SpringApplication.run(AccountApplication.class, args);
}
@Bean("threadPoolTaskExecutor")
public Executor asyncExecutor() {
final ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(20);
executor.setMaxPoolSize(1000);
executor.setThreadNamePrefix("AsyncThread-");
executor.initialize();
return executor;
}
}
使用此配置,服务无法正确启动。
现在,@Bean(“ threadPoolTaskExecutor”)配置已删除,我仅使用@Async。
但是为什么它不能与Spring Boot Starter 2.3.x一起使用?而且日志中没有错误消息。