【问题标题】:Set time to send out HTTP request设置发送 HTTP 请求的时间
【发布时间】:2015-07-19 19:40:22
【问题描述】:

Rails 中有没有办法在特定时间发送请求?

我正在使用外部信用卡收费 API,我想根据他们有多少推荐人(每个 10%,最多 10 个推荐人)调整每个月的订阅。该 API 内置了一个 beta 推荐系统,但它似乎并没有按照我需要的方式工作。另外,目前我不想涉及太多未知数。我只是想让它启动并工作,由于我的系统相当简单,我宁愿手动完成。

每个订阅都有一个计费日期,我想做的只是根据包含被收费用户推荐代码的活跃用户数量手动调整订阅价格。我想在他们收费之前将此请求发送到 API。就像subscription.next_billing_at - 1.minute 附近的某个时候。

然后只需将subscription.price 设置为price - (price * (User.where(referral_code: current_user_code)).count / 10)

我知道,考虑到每个月提出的额外请求的数量,这远非最佳方法,但由于我们现在还很小,所以这应该不是问题。同样,这只是一个临时解决方案,因此我们现在可以开始运行。

【问题讨论】:

    标签: ruby-on-rails api httprequest


    【解决方案1】:

    有两个选项可以直接回答您的问题。

    编写一个 rake 任务并每天使用 cron 通过 Whenever gem 运行它。如果您采用这种方法,您将不得不让任务加载所有将在下一个周期计费的订阅,并根据需要进行更新。

    或者,使用 Resque-scheduler 之类的东西,这将允许您在 next_billing_at - 1.minute 或其他时间运行一些任务。

    但是,如果您很小,为什么不每次使用回调创建新推荐时更新价格?除非此 API 有特定的速率或查询限制,否则我怀疑卡处理器会受到您生成的流量的影响。当然,如果还有其他要求,例如,推荐仅在一个月或类似的时间后适用,您将被前两个选项之一困住,而 Cron + Rake 任务可能是这种情况下的最佳解决方案.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多