2017-05-16 11 views
0

私がログインすると、プログラムはInstaSharper(命名:IInstaApi)のインスタンスを作成httpclientが含まれ、httpclienthandeler、...hangfireパラメータをjson(シリアル化)に変換しますか?

そして、私はこれを使用

AddFollower adf = new AddFollower(); 
    RecurringJob.AddOrUpdate("addfollow",() => adf.AddFollowerState(2,IInstaApi), "*/10 * * * *", TimeZoneInfo.Local, "default"); 

それがそれらの値を送信しHangfireジョブを作成し、ハングファイアをシリアル化します(DeSerializeの後に自分のオブジェクトとそれ以外のオブジェクトを破棄します) Hangfireで使用されるメソッドが2つのパラメータを持つようにするにはどうすればよいですか?InstaApi

どうすればよいですか?文書ではIOCを使うべきだと言いますが、私はそれをどのように使うことができるのか分かりません

+0

httclient?... httpClientではありませんか? – Coding4Fun

+1

これはなぜautofacとninjectでタグ付けされていますか?タグをスパムしないでください。 – Amy

+0

はautofacとninject(ioc)で解決できるので –

答えて

-1

あなたの定期的な仕事は静的に利用可能であり、全くコンテキストに依存しないようにする必要があります。
ただ、全体のロジックが含まれており、すべての仕事をする静的メソッドの作成:主なアイデアはHangfireがデータベースにあなたのメソッド呼び出し式をシリアル化し、いずれかのように、それは、文脈に依存しなければならないということである

public class AddFollowerJob 
    { 
     public static void Run() 
     { 
      AddFollower adf = new AddFollower(); 
      // do whatever you want here with adf 
      // initialize API here 
      adf.AddFollowerState(2, IInstaApi); 
      // handle results here 
     } 
    } 

    RecurringJob.AddOrUpdate("addfollow",() => AddFollowerJob.Run(), "*/10 * * * *", TimeZoneInfo.Local, "default"); 

をサーバー(リモートでさえ)はこのコードを実行できます。

IoCコンテナを使用してコード内にこれらの依存関係を格納しないことをお勧めしますが、これは必須ではありません。あなたがHangfireに渡すメソッドが自立していて独立していることを確認してください。

+0

どうすればこれらのパラメータをrun()メソッドに送ることができますか? –

+0

@ShoppingCenterCNC必要はありません。 'Run'メソッドの中でこれらのパラメータを初期化してください。 –

+0

いいえ、私はそれを行うことはできません仕事で送信する必要があります。私はハングファイアのコードを変更する必要があると思いますパラメータ値をもう一度シリアル化しないでください –

関連する問題