草庐IT

node.js - 使用 Bull 和 Kue 运行 50 个作业需要多少 Redis 内存使用量(大约)?

我正在尝试估算作业调度(主要是spark作业)的redis内存使用情况,Bull和Kue是我们目前正在考虑的两个选项。 最佳答案 redis的存储开销非常小。使用这么小的队列,它甚至可以压缩您的数据。您只需要弄清楚作业负载是什么样的。这将取决于您排队的工作类型。在正常情况下,队列中的作业将具有正在执行的类的名称和一些编码在字符串中的参数,通常为JSON。这可能相当于几十个字节。让我们四舍五入,假设每个作业1KB是安全的。作业大小(Redis本身使用几MB的RAM,所以这个数量微不足道。如果您的实际值不同,请调整以上等式。

node.js - 客户的 Kue 作业进度

我正在运行一个heroku应用程序,后台工作人员使用Kue处理作业。因为heroku终止并重新启动任何需要超过30秒的请求,所以我最终在jobs.create()上(在完成之前)将响应发送回客户端。由于其中一些工作最多需要几分钟才能完成,从客户端检查进度的最佳方式是什么?到目前为止,我能看到的最佳解决方案是将作业ID发送回客户端,然后每隔x秒检查一次作业进度:varjob=jobs.create(type,data).save(function(){res.send(200,job.id);});...kue.Job.get(id,function(err,job){res.send(

redis - Kue JSON API 不返回任何数据 - KUE with AWS Redis

我正在使用kue对一些使用nodeexpress的python作业进行排队和处理。我使用的redis服务器不是localhost上的默认服务器,而是AWSRedis。问题陈述:与AWSredis的连接成功,正在创建和处理作业,正在按预期从python作业生成输出文件,但是当使用的服务器是AWSRedis时,KueJSONAPI不会返回任何数据。如果它是本地主机上的redis服务器,API会完美地返回数据。1.这是我从节点到redis的连接代码constredisclient=redis.createClient({host:hostname,port:6379});varkue=req

javascript - 错过预定事件后如何执行代码?

我正在构建一个MEAN点名应用程序,一位教授打开该应用程序,如果有要教授的类(class),他可以点击它,然后会显示丢失的注册学生。然后,教授可以标记每个学生在场并点击“开始上课按钮”,之后,任何未选中的学生和他们的导师都会收到学生缺席的通知。但是,我的问题是当老师没有出现时将其标记为缺席,这意味着他们甚至没有打开应用程序。该应用程序设置了类(class)表,因此它知道应该在星期一上午8点到10点有一个讲座,但它没有日历功能。我目前在node中实现它的方式是,当我创建每周类(class)表时,我会在redis队列中添加一个通知作业,以便在老师实际出现时通知每一天的讲座,通知作业被删除。

node.js - 可以将同一个 Redis 实例与 kue.js 一起手动使用吗?

我正在使用kue.js,这是一个由redis支持的Node优先级队列,用于非常简单的作业队列内容(发送邮件、数据库工作人员的任务)。作为同一个应用程序的一部分(尽管在不同的服务中),我现在想使用redis手动存储url-shortener的一些映射。并发手动使用与kue.js相同的redis实例和数据库是否会干扰kue,即kue是否需要独占访问其redis实例?或者我是否可以手动使用相同的redis实例,例如,只要我避免使用某些键前缀?我确实知道我可以在同一个实例上使用多个数据库,但发现来自各种来源的大量讨论不鼓励使用数据库功能,并且谈论它在未来被弃用,这就是为什么我会如果可能的话,我

node.js - Mongoose 和 Kue - Node.js - 传递的对象没有方法保存

我使用mongoose和Kue进行流量控制。我将从数据库中检索到的对象传递给Kue。当作业得到处理时,对象不再有一些功能,如.save()和其他功能。jobs.process('process',5,function(job,done){varurl=job.data.url;varobjo=job.data.comp;request({uri:url,json:true},function(err,res,body){objo.meta=body;//Hereitthrowanerrorthatsaveisnotedefined//TypeError:Object#hasnometh

node.js - 获取 Kue 作业的结果并通过开放连接将其推送给客户端

我有一个API端点,它提供来自MongoDB的一些JSON。就像这样:router.get('/api/links',function(req,res){//Findexistinglinkslinks.find({feed:1},function(err,links){res.json(links)})})我希望这个端点触发一个Kue作业,当这个作业完成时,我想以某种方式将作业的结果(数据库中的新链接)推送到客户端–类似于Twitter流API,它保持开放的HTTPGET请求。router.get('/api/links',function(req,res){//Findexisti

node.js - 如何让客户端下载一个非常大的动态生成的文件

我有一个导出功能,可以读取整个数据库并创建一个包含所有记录的.xls文件。然后将文件发送给客户端。当然,导出全库的时候需要很多时间,而且请求很快就会以超时错误结束。处理这种情况的最佳解决方案是什么?例如,我听说过使用Redis创建队列,但这需要两个请求:一个用于启动将生成文件的作业,第二个用于下载生成的文件。这是否可以通过客户端的单个请求实现? 最佳答案 Excel导出:使用Streams.以下是可能要做的事情的粗略想法:使用exceljsmodule.因为它有一个streamingAPI旨在解决这个确切的问题。varExcel=r

node.js - 如何让客户端下载一个非常大的动态生成的文件

我有一个导出功能,可以读取整个数据库并创建一个包含所有记录的.xls文件。然后将文件发送给客户端。当然,导出全库的时候需要很多时间,而且请求很快就会以超时错误结束。处理这种情况的最佳解决方案是什么?例如,我听说过使用Redis创建队列,但这需要两个请求:一个用于启动将生成文件的作业,第二个用于下载生成的文件。这是否可以通过客户端的单个请求实现? 最佳答案 Excel导出:使用Streams.以下是可能要做的事情的粗略想法:使用exceljsmodule.因为它有一个streamingAPI旨在解决这个确切的问题。varExcel=r

redis - 如何在不同端口的单个服务器上运行 redis?

我正在使用kue使用node_redis,但我也已经在我的session中使用了node_redis,所以我想让kue在特定端口上创建一个服务器,比如默认的6379然后kue监听端口1234。我怎样才能做到这一点?我找到了thisarticle它谈到了类似的事情,但我真的不想创建一个初始化脚本来做到这一点。 最佳答案 启动redis-server并为“端口”提供不同的参数,这可以在命令行上完成:edd@max:~$redis-server-hUsage:./redis-server[/path/to/redis.conf][opti