Я использую Hangfire 1.6.4 для моего проекта .NET Core.Hangfire 1.6.4 .NET Core - Не удалось разрешить зависимости
Вот мой график контроллер:
[HttpPost]
public void Post([FromBody]EmailSchedulerDto emailSchedulerDto)
{
// test only
emailSchedulerDto = new EmailSchedulerDto
{
UserId = "",
Email = "[email protected]",
StoresId = new List<string>(),
CronPattern = "* * * * *"
};
RecurringJob.AddOrUpdate(
() =>
_emailScheduler.ScheduleEmail(emailSchedulerDto.UserId, emailSchedulerDto.Email,
emailSchedulerDto.StoresId), emailSchedulerDto.CronPattern);
}
Но у меня есть ошибка во время выполнения задания:
// Job ID: #183
using MyProject.Services.Email;
var emailScheduler = Activate<EmailScheduler>();
await emailScheduler.ScheduleEmail(
"",
"[email protected]",
FromJson<IEnumerable`1>("[]")
storesId
);
System.InvalidOperationException
Нет услуг для типа «MyProject.Services. Email.EmailScheduler 'зарегистрирован.
Я уже зарегистрирован ContainerJobActivator как это:
public class ContainerJobActivator : JobActivator
{
private readonly IServiceProvider _serviceProvider;
public ContainerJobActivator(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
public override object ActivateJob(Type type)
{
return _serviceProvider.GetService(type);
}
}
А в классе запуска:
GlobalConfiguration.Configuration.UseActivator(new ContainerJobActivator(services.BuildServiceProvider()));
Что не так?
Спасибо!
Связанный ответ [Зависимость от зависимостей от Hangfire с .net core] (https://stackoverflow.com/a/44477843/4 28061) – Soren