We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
前几天,看到一篇文章。Introducing Solid Queue
A new DB-based queuing backend for Active Job that we open-sourced today.
而后又看到了:
在 Rails8 的计划中,会内置 Solid Queue,开箱即用,减少依赖。 基于 DB 的方式,虽说不是最快,但已经够快了。
Rails8
Solid Queue
DB
基于 makefile 写个简单的启动命令:
makefile
run_rails_7_demo: docker run -it \ --privileged \ --name rails_7_demo \ -p 3010:3000 \ -v /Users/Work/share_demo/rails_7_demo:/root/rails_7_demo \ ruby:3.3 \ /bin/bash
安装 rails 的 gem:
rails
gem
gem install rails
基本版本:
rails -v #=> Rails 7.1.3.2 ruby -v #=> ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-linux] bundler -v # => Bundler version 2.5.6 gem -v # => 3.5.6
Bundler 是 Ruby 的一个依赖管理器,用于跟踪和安装应用程序所需的 gem 包。 gem 是 Ruby 的包管理器,用于创建、发布、维护和安装 Ruby gem 包。 因此,Bundler 实际上是建立在 gem 之上,提供更好的 gem 管理功能,使得在不同环境中更容易地管理 gem 的依赖关系。 Bundler 不是 Ruby 的内置组件,需要单独安装。通常,可以使用 gem install bundler 命令来安装 Bundler。 gem list bundler 查看当前的版本。
Bundler 是 Ruby 的一个依赖管理器,用于跟踪和安装应用程序所需的 gem 包。 gem 是 Ruby 的包管理器,用于创建、发布、维护和安装 Ruby gem 包。 因此,Bundler 实际上是建立在 gem 之上,提供更好的 gem 管理功能,使得在不同环境中更容易地管理 gem 的依赖关系。
Bundler 不是 Ruby 的内置组件,需要单独安装。通常,可以使用 gem install bundler 命令来安装 Bundler。 gem list bundler 查看当前的版本。
创建 rails 新项目:
rails new rails_7_demo
可以新开控制台,进入同个容器里:
docker exec -it rails_7_demo env LANG=C.UTF-8 bin/bash
根据文档,先配置 solid_queue 的相关东西:
solid_queue
gem "solid_queue" gem "mission_control-jobs"
新建一个 job :
job
class MyJob < ApplicationJob def perform(name) Rails.logger.info "Processing job for #{name}" end end
将任务推入 solid_queue:
MyJob.perform_later('name')
启动 solid_queue 消费:
bundle exec rake solid_queue:start
查询数据:
或者直接基于页面进行查询: 本地配置:http://0.0.0.0:3010/jobs
http://0.0.0.0:3010/jobs
整体体验十分的顺畅。 能够非常快速地搭起后台任务的框架。
看了 solid_queue 的文档,还是很实用的。 也就借此机会,了解一下基于 DB 的异步框架,是怎么去实现。
activejob
bin/rails generate solid_queue:install
FOR UPDATE SKIP LOCKED
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一、契机
前几天,看到一篇文章。Introducing Solid Queue
而后又看到了:
在
Rails8
的计划中,会内置Solid Queue
,开箱即用,减少依赖。基于
DB
的方式,虽说不是最快,但已经够快了。二、初体验
2.1 环境搭建
基于
makefile
写个简单的启动命令:安装
rails
的gem
:基本版本:
创建
rails
新项目:可以新开控制台,进入同个容器里:
docker exec -it rails_7_demo env LANG=C.UTF-8 bin/bash
根据文档,先配置
solid_queue
的相关东西:2.2 使用
新建一个
job
:将任务推入
solid_queue
:启动
solid_queue
消费:查询数据:

或者直接基于页面进行查询:

本地配置:
http://0.0.0.0:3010/jobs
整体体验十分的顺畅。
能够非常快速地搭起后台任务的框架。
三、下一步
3.1 文档
看了
solid_queue
的文档,还是很实用的。也就借此机会,了解一下基于
DB
的异步框架,是怎么去实现。3.2 涉及主题
activejob
bin/rails generate solid_queue:install
)FOR UPDATE SKIP LOCKED
3.3 大致结构
3.4 整体目标
The text was updated successfully, but these errors were encountered: