草庐IT

await-async

全部标签

javascript - async/await 可以在构造函数中使用吗?

正如问题所述。我可以这样做吗:classMyClass{asyncconstructor(){returnnewPromise()}} 最佳答案 为了扩展PatrickRoberts所说的内容,您不能按照您的要求去做,但您可以改为这样做:classMyClass{constructor(){//staticinitialization}asyncinitialize(){awaitWhatEverYouWant();}staticasynccreate(){consto=newMyClass();awaito.initialize(

javascript - 在非异步函数中使用 "await"

我有一个异步函数,它由我代码中某处的setInterval运行。此函数定期更新一些缓存。我还有一个不同的同步函数,它需要检索值——最好从缓存中检索,但如果是缓存未命中,则从数据源中检索(我意识到以同步方式进行IO操作是不明智的,但让我们假设在这种情况下这是必需的)。我的问题是我希望同步函数能够等待来自异步函数的值,但无法使用await非async中的关键字功能:functionsyncFunc(key){if(!(keyincache)){awaitupdateCacheForKey([key]);}}asyncfunctionupdateCacheForKey(keys){//upd

java - 如何在@Async 中捕获事务异常?

使用@Async编写事务方法时,无法捕获@Transactional异常。像ObjectOptimisticLockingFailureException,因为它们在事务提交期间被抛出到方法本身之外。例子:publicclassUpdateService{@AutowiredprivateCrudRepositorydao;//throwsegObjectOptimisticLockingFailureException.class,cannotbecaught@Async@TransactionalpublicvoidupdateEntity{MyEntityentity=dao.f

java - Spring @Async 抽象在异常处理方面存在漏洞

当使用Spring的@Async注释时,当涉及到方法的throws子句中的(已检查)异常时,抽象是有漏洞的。编译器会强制调用者处理异常,但实际上调用者永远不会看到@Async方法抛出的异常。相反,根据实现,它将由Spring处理和记录,或提供给用户配置的异常处理程序,或在返回值上调用Future#get()时生成。因此,我形成的观点是,@Async方法通常不应抛出已检查的异常。相反,他们应该将所有已检查的异常包装在RuntimeException类型中,以便不存在throws子句。这是一个准确的评估吗?是否有任何工具或编程方法可以修复泄漏?有没有人碰巧知道Spring开发人员对此有何看

java - Spring @Async 和同步

我有一个基于Spring的异步方法(用@Async注释)我想在错误事件发生一定次数的情况下暂停。由于可能有多个线程在做同样的事情,我尝试了一个静态的AtomicInteger(MY_COUNT)这样所有的线程都可以知道计数,并且利用AtomicInteger提供的内置并发。在我的单元测试中(在Eclipse中使用SpringJUnit4ClassRunner运行),一切正常,直到线程命中MY_COUNT.incrementAndGet()。然后线程就消失了。没有异常(exception),没有。异步工作线程就消失了。我尝试取出AtomicInteger并仅使用synchronized方

java - 如何使用 Mockito 在 Spring Boot 中模拟异步(@Async)方法?

用mockito模拟异步(@Async)方法的最佳方法是什么?提供以下服务:@Service@Transactional(readOnly=true)publicclassTaskService{@Async@Transactional(readOnly=false)publicvoidcreateTask(TaskResourcetaskResource,UUIDlinkId){//dosomeheavytask}}Mockito的验证如下:@RunWith(SpringRunner.class)@WebMvcTest(SomeController.class)publicclass

java - Spring取消@Async任务

我希望能够在它的future取消标有@Async注释的方法。我有一个用@Async注释标记的Spring方法。该方法进行一些计算,并最终返回一个结果。我见过的所有示例都建议使用AsyncResult类来返回此Future。@AsyncpublicFuturerun(){//...Computation.Minutespass...returnnewAsyncResult("Result");}我以下列方式从另一个组件调用以下方法。出于示例目的,我希望立即取消此线程:Futurefuture=component.run();future.cancel(true);在这种情况下,线程永远不

java - 如何为 Async Spring 使用多个 threadPoolExecutor

我在两个类上使用Spring@Async。两者最终都实现了一个接口(interface)。我正在创建两个单独的ThreadPoolTask​​Executor,因此每个类都有自己的ThreadPool来处理。然而,由于我认为代理和Spring如何实现异步类,我必须将@Async注释放在基本接口(interface)上。因此,这两个类最终使用相同的ThreadPoolTask​​Executor。是否可以告诉Spring对于这个Bean(在本例中我将实现该接口(interface)的类称为服务),使用这个ThreadPoolTask​​Executor。 最佳

java - Apache async HttpClient 速度不快

我是Apachehttp客户端的新手,正在尝试从网站获取状态代码。在Apachehttp教程中找到以下示例。importjava.util.concurrent.CountDownLatch;importorg.apache.http.HttpResponse;importorg.apache.http.client.config.RequestConfig;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.concurrent.FutureCallback;importorg.apache.http.

java - Spring @Transactional 和 @Async

在我的应用程序中,在创建任务时,我需要对Google进行API调用以创建Google日历事件。我决定在一个单独的线程上进行API调用,这样我们的客户端就不必等待更长时间的响应。@Override@Transactional(rollbackFor=DataException.class)publicTaskResponseBeancreateTask(TaskCreationBeantaskCreationBean,UserAccessDetailsaccessDetails)throwsDataException{StringgoogleEventId="";try{TaskServ