リモートodbcデータベースに接続し、データをフェッチしてローカルデータベースを更新するsidekiqワーカーがあります。今私は労働者を2人の労働者に分割しています。 1つはデータに接続してフェッチし、別のレコードはレコードを更新します。Sidekiq:オブジェクトをパラメータとして渡します。
接続は、パラメータとして2番目のワーカーに渡しているオブジェクト#<OCI8::Cursor:0x00000007703f30>
を返します。
SecondWorker.perform_async({:odbc => connection})
私はそれを使用しようとした第二のワーカーで
:
def perform(options)
order_odbc = options['odbc']
end
しかし、それは文字列オブジェクトとして扱います
"#<OCI8::Cursor:0x00000006bddf48>":String
パラメータ内のオブジェクトを渡すための他の方法はありますか?
ありがとうございました。目標は、最初にサーバーに接続するときの最初の作業者の作業負荷を最小限に抑え、データを取り出してレコードを更新することです。だから、私は新しい労働者を始めようと考えました。 – Arif
他のメソッド(「第2のワーカー」を表すコード)を非同期メソッドとして開始するため、ワーカー自身を解放します。私は、あなたがそのコードを第2の作業者に移すことから「利益」を得られるとは確信していませんが、間違っている可能性があります。非同期の「遅延」コールを使用することによって、作業者が移動するなど –