首页 > 解决方案 > 租户在 BackgroundJob 中为 Null

问题描述

我有一个后台工作,我需要有tenantId。

我进行了身份验证并测试了tenantId,它不为空。我使用了其他端点,效果很好,但是当我测试背景作业时,tenantId 始终为空。

我不知道我是否遗漏了什么,或者我需要在 args 中发送tenantId。

这是BJ

public class BackgroundNotificationJob : AsyncBackgroundJob<NotificationArgs>, ITransientDependency
{
    private readonly FirebaseAppService _firebaseAppService;
    private readonly IUnitOfWorkManager _unitOfWorkManager;

    public BackgroundNotificationJob (
         FirebaseAppService firebaseAppService ,
         IUnitOfWorkManager unitOfWorkManager)
    {
        _firebaseAppService = firebaseAppService;
        _unitOfWorkManager = unitOfWorkManager;
    }

    public override async Task ExecuteAsync (NotificationArgs args)
    {
        foreach (var notification in args.Notifications)
        {
            await _firebaseAppService.CreateMessage(notification.Key, notification.Value.ToString(), args.UserId);
        }
    }
}

配置:

public override void ConfigureServices ( ServiceConfigurationContext context )
{
        var configuration = context.Services.GetConfiguration();
        ConfigureHangfire(context, configuration);
}

private void ConfigureHangfire (ServiceConfigurationContext context, IConfiguration configuration)
{
        context.Services.AddHangfire(config =>
        {
            config.UseSqlServerStorage(configuration.GetConnectionString("Default"));
        });
}

标签: c#asp.net-corehangfireabp

解决方案


推荐阅读