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
}
}