2016-10-11 6 views
4

私はHangfireがインストールされたサーバーを持っています。私はしばらくそれをチェックしていないし、1つの定期的な仕事が不正になっているようだ。それは動作を停止した後、再試行で積み重ねられ、完全なロックが発生したように見えます。Hangfireをクリーンな状態に安全にリセットするにはどうしたらいいですか?

データベースをクリアして、やり直したいと思います。私はすべてのテーブルからデータを削除するだけですか?テーブルを削除して、Hangfireでそれらを再作成する必要がありますか?私はこれを行うことによって何かを危険にさらしていますか?

Azureベーシックデータベース全体を使用するHangfire.State 2GBの領域。 enter image description here

答えて

9

私はテーブルを削除してしまいました。最初はクエリが全く機能しませんでした。私はその後TRUNCATE TABLE [HangFire].[State]を使用し、それはすべての後に魅力のように働いた。ここで私はUseSqlServerStorageHangfire 1.5.6に使用するスクリプトです:

GO 
PRINT N'Dropping [HangFire].[FK_HangFire_State_Job]...'; 


GO 
ALTER TABLE [HangFire].[State] DROP CONSTRAINT [FK_HangFire_State_Job]; 


GO 
PRINT N'Dropping [HangFire].[FK_HangFire_JobParameter_Job]...'; 


GO 
ALTER TABLE [HangFire].[JobParameter] DROP CONSTRAINT [FK_HangFire_JobParameter_Job]; 


GO 
PRINT N'Dropping [HangFire].[Schema]...'; 


GO 
DROP TABLE [HangFire].[Schema]; 


GO 
PRINT N'Dropping [HangFire].[Job]...'; 


GO 
DROP TABLE [HangFire].[Job]; 


GO 
PRINT N'Dropping [HangFire].[State]...'; 


GO 
DROP TABLE [HangFire].[State]; 


GO 
PRINT N'Dropping [HangFire].[JobParameter]...'; 


GO 
DROP TABLE [HangFire].[JobParameter]; 


GO 
PRINT N'Dropping [HangFire].[JobQueue]...'; 


GO 
DROP TABLE [HangFire].[JobQueue]; 


GO 
PRINT N'Dropping [HangFire].[Server]...'; 


GO 
DROP TABLE [HangFire].[Server]; 


GO 
PRINT N'Dropping [HangFire].[List]...'; 


GO 
DROP TABLE [HangFire].[List]; 


GO 
PRINT N'Dropping [HangFire].[Set]...'; 


GO 
DROP TABLE [HangFire].[Set]; 


GO 
PRINT N'Dropping [HangFire].[Counter]...'; 


GO 
DROP TABLE [HangFire].[Counter]; 


GO 
PRINT N'Dropping [HangFire].[Hash]...'; 


GO 
DROP TABLE [HangFire].[Hash]; 


GO 
PRINT N'Dropping [HangFire].[AggregatedCounter]...'; 


GO 
DROP TABLE [HangFire].[AggregatedCounter]; 


GO 
PRINT N'Dropping [HangFire]...'; 


GO 
DROP SCHEMA [HangFire]; 


GO 
PRINT N'Update complete.'; 


GO 
+1

は、しかし、それらを落とした後、再び外部キーを追加することを忘れないでください。ちなみに最新の[1.6.5](https://www.nuget.org/packages/Hangfire/)にアップデートする方が良いでしょう.Handfire.CoreとHangfireの両方のバージョンから多くの修正がありました。 SqlServerはこのような問題に直面しません。 – odinserj

関連する問題