【发布时间】:2018-07-10 13:56:13
【问题描述】:
我对 Ruby 和 Sinatra 还很陌生,我正在尝试设置一个基本的 sinatra 服务器来监听 HTTP 发布请求,然后处理数据。
我需要在 5 秒内发送响应,否则发送 POST 的服务器(shopify)认为请求失败并再次发送。为避免这种情况,Shopify 建议将处理推迟到发送响应之后。
我不确定在 Sinatra 发送响应后如何触发我的处理。
这行得通吗?
require 'sinatra'
require 'json'
webhook_data = Order.new
post '/' do
request.body.rewind
data = request.body.read
webhook_data.parsed_json = JSON.parse(data)
puts "My response gets sent here, right ?"
end
after do
#DO MY PROCESSING HERE
end
有没有更好的方法来做到这一点?
【问题讨论】:
-
看看 Sidekiq、ActiveJob 和类似的东西。
标签: ruby post sinatra shopify webhooks