0

タスクを使用して、PayPalへのMassPayAPI呼び出しを行っています。

編集: 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

これを行うためのより機能的な方法は、すべてを呼び出しでラップすること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 に答える