我在我的Rails 4.2应用程序中设置了两个Sidekiq工作器,其中第一个执行多个作业,另一个在所有这些作业完成后发送电子邮件.这两个耦合在这个超级工作者:
Superworker.define(:PrioritySuperworker, :object_class, :object_id, :priority_ids) do
batch priority_ids: :priority_id do
PriorityMailsWorker :object_class, :object_id, :priority_id
end
SendConfirmationWorker :object_class, :object_id
end
Run Code Online (Sandbox Code Playgroud)
我想在调用这个超级工作者的模型中执行另一个操作,但是只有当superjob已经完成时(这意味着其中的所有子工作也已完成).我已经看到Sidekiq Pro可以在完成批处理时触发回调,但由于我在开源平台上工作,所以我买不起.有没有办法使用Superworker或任何其他免费工具?
我正在寻找一种使用 Python 转储 PostgreSQL 数据库模式的方法。理想情况下,结果可以是.sql转储或任何其他格式,稍后 SQLAlchemy 可以使用这些格式从该模式创建新数据库。
我用 SQLAlchemy 的MetaData 类做了这个实验:
from sqlalchemy import MetaData, create_engine
engine = create_engine(source_database_url)
test_engine = create_engine(test_database_url)
metadata = MetaData()
metadata.reflect(engine)
metadata.create_all(test_engine)
Run Code Online (Sandbox Code Playgroud)
除了导出架构以供以后使用之外,这正是我想要的。因此,考虑到 SQLAlchemy 可以成功反映模式并基于它创建另一个表,我希望有一种方法可以在此过程中以编程方式导出它。
我知道我可以从代码中调用pg_dump和pg_restore,但我想避免外部依赖以及随之而来的麻烦。
有没有办法使用 SQLAlchemy 或其他 Python 库来实现这一点?
我有一个形式为"award.x_initial_value.currency"的字符串,我希望将除了前导"x_"之外的所有内容都归结为所以我得到了一个结果:"award.x_initialValue.currency".我目前的实施是:
a = "award.x_initial_value.currency".split(".")
b = a.map{|s| s.slice!("x_")}
a.map!{|s| s.camelize(:lower)}
a.zip(b).map!{|x, y| x.prepend(y.to_s)}
Run Code Online (Sandbox Code Playgroud)
我对它不是很满意,因为它既不快也不优雅,性能是关键,因为它将应用于大量数据.我也谷歌搜索但找不到任何东西.
是否有更快/更好的方法来实现这一目标?