0

我正在使用任务对 PayPal 进行 Mass Pay API 调用。

编辑:如果有超过 250 个接收者,我需要退出循环并在完成后再次调用它。

这是我的任务:

    task :pay => :environment do
    clnt = HTTPClient.new
    i = 0;
    data = {    "METHOD" => "MassPay",
    ...}
    @users = User.all
    @users.each do |user|
       if i == 249 
            // call task again
       end
        data["L_EMAIL#{i}"] = "#{user.email}"
        data["L_AMT#{i}"] = "1.21"
        ...
        i+=1

        end

我怎么能做到?

4

2 回答 2

2

一个更实用的方法是将everyting包装在一个in_groups_of调用中。从你的代码猜测,你会得到类似的东西:

task :pay => :environment do
  @users = User.all

  @users.in_groups_of(250, false).each do |group|
    clnt = HTTPClient.new
    data = {    "METHOD" => "MassPay",
      ...}

    group.each do |user|
      data["L_EMAIL#{i}"] = "#{user.email}"
      data["L_AMT#{i}"] = "1.21"
      ...
    end
  end
end

文档在这里

于 2012-08-22T08:26:41.483 回答
0

尝试这个:

Rake::Task['pay'].reenable 
于 2012-08-21T10:43:46.020 回答