0

IJobActivator 内からサービス バス トリガーを使用して Web ジョブの基になる BrokeredMessage を取得することは可能ですか? これは、マルチテナント シナリオで非常に役立ちます。

Unity でカスタム IJobActivator を使用してジョブをインスタンス化しています。UnityJobActivator クラス内から、基礎となる BrokeredMessage を見て、すべてのメッセージが持つ「テナント」などのカスタム プロパティをそこから取得できるようにしたいと考えています。これにより、適切なデータベース接続または構成オブジェクトを実行前にジョブ クラスに挿入できます。

以下は、ITenantConfiguration をジョブに挿入したいが、それを BrokeredMessage カスタム プロパティに基づいたものにしたい例です。UnityJobActivator 内から BrokeredMessage にアクセスできれば、これを行うことができます。

public class CustomJob
{
    private const string Subscription = "subscription";
    private const string Topic = "topic";

    private ITenantConfiguration config;

    public CustomJob(ITenantConfiguration config)
    {
        // This configuration depends on the Tenant property of the BrokeredMessage
        this.config = config;
    }

    public void Handle([ServiceBusTrigger(Topic, Subscription)] MyMessage myMessage)
    {
        // Do something with myMessage and the appropriate configuration
    } 
}
4

1 に答える 1

0

はい、MyMessage ではなく BrokeredMessage にバインドします。

public void Handle([ServiceBusTrigger(Topic, Subscription)] BrokeredMessage myMessage)
{ ... }
于 2015-07-23T01:39:46.190 に答える