草庐IT

dispatch_async

全部标签

c++ - 用自己的版本替换 std::async 但 std::promise 应该住在哪里?

我使用的是vc2011,结果发现std::async(std::launch::async,...)有点问题(有时它不会生成新线程并并行运行它们,而是重用线程并一个接一个地运行任务)。当我进行昂贵的网络调用时,这太慢了。所以我想我会编写自己的异步函数。我被卡住了,std::promise应该放在哪里?在1)线程函数、2)异步函数或3)调用函数中。代码:#include#include#include#include#includestd::stringthFun(){throwstd::exception("bang!");return"val";}std::futuremyasync

Python 多处理 apply_async 从不在 Windows 7 上返回结果

我正在尝试遵循一个非常简单的多处理示例:importmultiprocessingasmpdefcube(x):returnx**3pool=mp.Pool(processes=2)results=[pool.apply_async(cube,args=x)forxinrange(1,7)]但是,在我的Windows机器上,我无法得到结果(在ubuntu12.04LTS上它运行完美)。如果我检查结果,我会看到以下内容:[,,,,,]如果我运行results[0].ready(),我总是得到False。如果我运行results[0].get(),python解释器会卡住,等待获取永远不会

c++ - 将 C++11 async/futures 与 Windows 异步 IO 相结合的最佳 API 是什么?

特别是即将推出的Windows8(带有Metro)将要求任何IO异步编程。在C#/.Net中似乎有特殊的await和类似的构造,JavaScriptAPI将有自己的机制来实现它。什么是C++11集成?对于现代(或即将推出的)Windows,这是一个简洁的示例(例如,从文件中读取图像以供显示吗?)?如果它使用C++11功能,我希望涉及async或future吗? 最佳答案 TipsandtricksfordevelopingMetrostyleappsusingC++演示文稿在59:13介绍了这一点。原始接口(interface)使用

django - apply_async 后 Celery chord 不释放 redis pubsub channel

我正在从我的django应用程序中的celery启动一个chord以响应请求。和弦正确执行,但django从未发布pub-subchannel。杀死django服务器释放channel,然后它从redis-clipubsubchannels中消失。celery4.1.1或4.2.0rc4Redis4.0.9python2.7.15在本地运行,1个celeryworker,1个api服务器在这种情况下结果并不重要(但文档说不要忽略它们)完整示例项目位于:https://github.com/awbacker/celerychord-issue点击/api/start/并在运行celery

node.js - Node : Async job queue processing

我在nodejs中使用express开发一个经常与mongodb通信的网络应用程序。目前,我使用自己的作业队列系统运行生产,该系统仅在前一个作业完成后才开始处理作业(kue似乎采用了这种方法)。对我来说,这似乎非常低效,我希望有一个更加异步的作业队列,所以我正在寻找一些关于其他nodejs开发人员如何对他们的作业进行排队和构建他们的处理的建议。我的一个想法是处理任何立即收到的作业,并按添加顺序返回结果数据。还要考虑:目前每个用户都有自己独立的作业队列实例,这是正常做法吗?有什么理由不应该这样吗?(即,所有用户都将作业发送到一个通用队列?)如有任何意见/建议,我们将不胜感激。

ruby-on-rails - Sidekiq perform_async 未触发

我正在使用Sidekiq创建Elasticsearch回调。我启动了Redis和Sidekiq,并在Rails控制台中创建了一个对象,但似乎perform_sync没有触发。如果我将require'sidekiq/testing';Sidekiq::Testing.inline!添加到sidekiq.rb,它会按照我的预期记录并引发错误。我错过了什么吗?ruby2.3.0rails5.0.2Sidekiq4.2.9Redis3.2.0sidekiq.rbREDIS_URL='localhost'REDIS_PORT='6379'Sidekiq.configure_serverdo|co

Python async redis 给出错误 AttributeError : __aexit__

我是Python的新手,正在尝试构建一个简单的应用程序来从Redis数据库中检索数据。但是,当我尝试检索数据时,出现“AttributeError:__aexit_”错误。有人知道我做错了什么吗?提前致谢!我的代码:fromsanicimportSanicfromsanic.responseimportjsonimportredisapp=Sanic()#request.args['token']@app.route('/')asyncdeftest(request,id):asyncwithredis.StrictRedis(host='0.0.0.0',port=6379,db=0

django - 将请求从一个 uwsgi 分派(dispatch)到另一个运行 Django Channels 的 uwsgi 实例

我目前正在使用Djangochannel进行websocket通信。我阅读了这篇文章,它指出我应该将项目拆分为两个uwsgi实例。它指出“Web服务器负责将正常请求分派(dispatch)到一个uWSGI实例,将WebSocket请求分派(dispatch)到另一个”现在我有两个uwsgi实例在运行。这就是我运行两者的方式。这个uwsgi处理正常的django站点请求uwsgi--virtualenv/home/ec2-user/MyProjVenv--socket/home/ec2-user/MyProjVenv/MyProjWeb/site1.socket--chmod-socke

asynchronous - 尝试使用 async.concat 从 redis 检索数据时出错

我正在关注异步作者here发布的示例但我收到了一个错误。redis-2.2.12Nodev0.4.11-pre这是我的代码:varasync=require('async');varredis=require('redis');varkeys=['key1','key2','key3'];varclient=redis.createClient();varmulti=client.multi();for(varkeyinkeys){multi.hmset(key,{'some':'value'});}multi.exec(function(err,res){if(err)thrower

mysql - 在 Spring 应用程序的事务中使用 Async

我有一个Spring应用程序,它使用@Transactional更新MySQL数据库中的特定实体详细信息方法,在同一方法中,我尝试使用@Async调用另一个端点这是另一个Spring应用程序,它从MySql数据库读取相同的实体并更新redis存储中的值。现在的问题是,每次我更新实体的一些值时,有时它会在Redis中更新,有时却不会。当我尝试调试时,我发现有时第二个应用程序在从MySql读取实体时会选择旧值而不是更新值。谁能建议我如何避免这种情况并确保第二个应用程序始终从Mysql中选择该实体的更新值? 最佳答案 M.Deinum的回