Веб-сайт «Работа в Плеске» от Hangfire не работает - PullRequest
1 голос
/ 20 января 2020

У меня есть следующая настройка в моем проекте C# MVC, в файле Global.asax.cs:

 ////hangfire config
 GlobalConfiguration.Configuration
     .UseSqlServerStorage("ContextName", new SqlServerStorageOptions
     {
         CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
         SlidingInvisibilityTimeout = TimeSpan.FromMinutes(15),
         QueuePollInterval = TimeSpan.Zero,
         UseRecommendedIsolationLevel = true,
         UsePageLocksOnDequeue = true,
         DisableGlobalLocks = true
     })
     .UseRecommendedSerializerSettings();
 //.UseLog4NetLogProvider(); // this creates a bunch of logs that inflates the DB, only for testing purposes!

и этот код, который я пытался настроить, но не могу получить он работает в производстве, локально работает нормально.

BackgroundJobServer backgroundJobServer = new BackgroundJobServer();
RecurringJob.AddOrUpdate(() => MethodCalling(DateTime parameter), "0 8 * * *");

Это работает локально, но не тогда, когда я публикую sh в моей среде Plesk. Я попытался также с этим:

RecurringJob.Trigger("Identifier here");

и, конечно, установив Идентификатор в методе AddOrUpdate, но он срабатывает каждый раз, когда сайт просматривается, я думаю. Я хочу, чтобы он запускался каждый день в 8:00 утра.

Попробовал изменить время:

"00 * * * *" установить запуск каждый час, каждый день каждый месяц или даже с Cron.HourInterval(int) устарел, но, кажется, он срабатывает всякий раз, когда я просматриваю сайт, или + -3 раза в день, если я не просматриваю его, может быть, возможно, цикл утилизации IIS может быть?

Я также пытался изменить его на это:

BackgroundJob.Enqueue(()=> MethodCalling(DateTime parameter));

Когда я проверяю свою базу данных (используя EF), я ясно вижу, что она работает, но что-то не настроено должным образом, но я не знаю, что.

ЛЮБЫЕ предложения добро пожаловать! Спасибо! (ПРИМЕЧАНИЕ: не используется. NET Core)

1 Ответ

1 голос
/ 28 января 2020

Во-первых, давайте перефразируем проблему, основываясь на обсуждении выше. Вам нужен ежедневный триггер для инициализации некоторых задач, и вы хотели бы знать, какие могут быть варианты при развертывании вашего решения на платформе общего хостинга.

IIS / ASP .NET / ASP. NET Ядро не предназначено для таких задач, и на платформе общего хостинга вы не сможете запускать ежедневные задания без препятствий.

Таким образом, лучший вариант - найти внешний ресурс (например, Zapier). в качестве ежедневного триггера, и пусть он вызывает ваше веб-приложение для инициализации заданий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...