问题标签 [que]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
503 浏览

ruby-on-rails - 使用名为 Que 的后台作业管理器 gem 执行作业时出错

我正在编写一个需要发送电子邮件的 Rails 4.2.0 应用程序。有人建议我Que使用 gem 来管理后台作业。我已经完成了安装和使用中列出的所有操作

我也在application.rb这些行中指定了:

我的工作是这样的send_welcome_message.rb

运行rails s命令后,我的控制台将填充这些消息:

当我像这样在控制器中排队我的工作时

SendWelcomeEmail.enqueue 20, priority: 100

并刷新页面,我一直收到以下错误(尽管我可以在不使用 que 的情况下以同步方式发送消息):

当我rails console在第二个终端打开并进入那里Que.worker_states它写在这里,应该返回系统中每个工人的信息)时,我得到了[]

我认为我没有产生任何工人。我对吗?以及如何解决?

更新

在 que 日志中发现错误:

第 8 行是:

解决方案

现在它的工作。我已经删除了适配器配置application.rb并代替

SendWelcomeEmail.enqueue 20, priority: 100

写了

现在它的作品。第二个变体中有趣的事情是将相同的值传递给函数。仍然错误消息说run只获得了 1 个参数 - 20

0 投票
1 回答
732 浏览

ruby-on-rails - 如何运行 Qu 作业

我已经安装了que gem,我想运行我正在安排的任务,目前我已经添加了config/application.rb

并将作业正确存储在数据库中但是当我尝试运行时

它开始但工作不工作,我已经审查了run_at现场,还尝试将环境设置为 RAIls_ENV=development。试过了

并生成和错误

0 投票
0 回答
156 浏览

ruby-on-rails-4 - 使用 Que 作为 heroku worker

我正在使用https://github.com/chanks/que

que我在 heroku 中设置时遇到问题。我在heroku中进行了设置webworker处理,并且有以下配置:

config/initializers/que.rb

Procfile

web以前,当我在 heroku中只有一个进程并且Que.mode = :async que在同一进程中成功运行时web

现在我worker为它设置了单独的进程,我尝试使用Que.mode = :off并且我看不到任何 que 日志,并且我可以在que-web.

请让我知道我缺少什么,哪些Que.mode适合我的配置。

注意:我想保持webworker处理分开,worker应该只负责运行我的que工作。

0 投票
2 回答
484 浏览

ruby-on-rails - Rails 和 Qu 职位

在我使用 sidekiq 之前,但现在我决定转移到 que 并将所有内容存储在 Postgresql 中。因为我不需要 redis 高性能功能,所以我想减少我的应用程序对外部组件的依赖。我添加 gem 'que',安装它并在 application.rb 中写道:

我从 ActiveJob::Base 继承的所有工作

但我不明白如何像使用 sidekiq 那样在单独的线程中运行后台任务(我通过 rake 命令 rake sidekiq:start 运行)

0 投票
1 回答
169 浏览

ruby-on-rails - 如何在 newrelic 中追踪阙作业?

我想在 cron 作业中运行我的脚本。此脚本创建多个 Que 作业来完成艰苦的工作。如何跟踪新遗迹中每个工作的活动?

我已经阅读了这篇关于如何跟踪 cronjobs的帖子https://blog.newrelic.com/2012/05/30/using-new-relic-to-monitor-ruby-background-tasks/ ,但是由于 Que 作业是管理的在它自己的工人(我正在使用美洲狮)中,它不会被追踪。

这是一个尝试执行此操作的示例脚本(但它不跟踪任何内容):

谢谢

0 投票
1 回答
73 浏览

ruby - 编写处理大量数据的作业是否安全?

我正在将QueSequel gem 一起使用,如果编写需要处理大量数据的作业是否安全,我很感兴趣,这些作业比可以安全放置在 1 个数据库事务中的数据多,例如 80k+ 行的导入/导出定期(我目前处理 1k 记录事务批次中的记录)。

我担心的是 gem/postgres 是否围绕后台工作程序执行某种隐式事务,这可能会使回滚段失控并使数据库崩溃。

我问这个的原因是,文档中的这一行:

安全性——如果一个 Ruby 进程死掉了,它正在工作的工作不会丢失,或者处于锁定或模棱两可的状态——它们会立即可供任何其他工作人员使用。

对我来说,这尖叫着“嵌套在事务中”,如果我的担心是真的,这可能会导致我的 80k 记录默默地包装到同一个回滚段中。我可以在我的笔记本电脑上试一试,但我的笔记本电脑比生产虚拟机强得多,所以我担心它可能会成功地在我的开发环境中运行,然后在部署中崩溃。

有类似Que经验的人可以帮忙吗?

链接:关于 GH 的相同问题

0 投票
1 回答
202 浏览

html - 如何删除页面右侧的 1 像素边缘?

我很难隔离出现在我网站右侧的 1 像素边缘。它发生在 Chrome 和 Safari 上不同的窗口大小,我似乎无法弄清楚是什么原因造成的,或者它是否真的是我的设置完全无法避免的事情。

网站: www.husamelfaki.net

非常感谢您能提前提供帮助,非常感谢。胡萨姆

编辑:删除敏感密码详细信息,现在问题已得到解答。谢谢你。

0 投票
2 回答
20 浏览

ruby-on-rails - 使用设计添加管理功能后更改路线

这个问题会有点令人费解,因为我是 RoR 的新手,但我被扔进了我班级的一个相对较大的 RoR 项目。为此,我深表歉意,但我会尽力澄清。我欣然承认,一开始我们可能做错了。

所以无论如何,情况如下:

  • 我们最初试图恢复一些由专业公司构建的遗留代码并接近,但最终没有运气。

  • 正因为如此,我们开始了一个新项目,并使用脚手架来构建我们项目的结构。

  • 我们使用了遗留项目中的大量代码,但最终添加的代码比我们实际使用的要多得多。现在我们不确定什么需要什么不需要。

  • 长话短说,我们有一个工作项目,但最近尝试使用 devise 将我们的功能按用户和管理员分开(我不确定到什么程度)。在这样做时,我们将管理控制器和视图分离到一个管理子文件夹中,这样我们就有了“/controllers/admin/events”和“/controllers/events”,我们的视图也一样。我们的想法是,我们的管理员和用户有一个单独的视图(同样,相当肯定这不是正确的方法)。

我几乎可以肯定我们做错了,但它最终让我想到了这个问题:

我们更改了 routes.rb 以将我们的资源包含在管理命名空间下,如下所示:

但是当我尝试像我们最初那样做类似“link_to @form_defs”的事情时,它仍然尝试路由到 form_defs_questions_path 而不是 admin_form_defs_questions_path

我认为我的问题只是如何更改课程以使其正确路由?

如果有更好的方法我们应该做到这一点,基本上不涉及重新启动项目,我全神贯注。

我想我需要更改我的对象默认路由到的位置:

我遇到问题的代码是一个创建新问题的表单生成器。这是我们为此使用的代码:

导致问题的具体线路是这样的:

我查看了“form_for()”的文档,但是对于 RoR 来说是新手,解释并没有太大帮助。

因此,当我到达代码中的这一点时,它显然试图路由到“form_def_questions_path”而不是“admin_form_def_questions_path”。我已经尝试过:

但它似乎需要一个对象作为输入,而不是路径。

再一次,我意识到可能有更好的方法来做到这一点,所以如果你有一个建议,我会全力以赴。谢谢!

0 投票
1 回答
220 浏览

c++ - C++ 将值添加到堆栈下标需要数组或指针类型和警告

我是 C++ 编程新手。实现堆栈也是新的。我的目标是使用模板堆栈创建 RPN 计算器。不能使用内置的堆栈类。

到目前为止我拥有一切,现在我被卡住了,我想不出如何解决这个问题。我目前收到这些错误:

这是我的堆栈类:

这是我的主要课程:

问题似乎来自我push()RPNCalculator模板类中的方法。

0 投票
3 回答
105 浏览

javascript - 了解异步函数调用

我刚刚开始学习异步 JavaScript,所以我不确定这是否是一个愚蠢的问题,但我无法直接找到答案。

在异步 JS 的示例中,我看到异步逻辑总是在同步逻辑之后调用,也就是说最后。就像是:

这不相当于:

异步调用是否与主线程堆栈顶部的函数调用相同,因为异步调用似乎总是在任何同步之后进行?

感谢您对此的任何帮助!