2016-10-11 2 views
4

Ich habe einen Server mit Hangfire installiert. Ich habe es eine Weile nicht überprüft und es scheint, dass ein wiederkehrender Job schurkisch geworden ist. Es hat aufgehört zu arbeiten und dann hat es sich mit Wiederholungen gestapelt, was zu einer vollständigen Sperre führt, wie es scheint.Wie kann ich Hangfire sicher auf einen sauberen Zustand zurücksetzen?

Ich möchte meine Datenbank löschen und neu beginnen. Kann ich nur die Daten aus allen Tabellen löschen oder sollte ich die Tabellen löschen und Hangfire sie für mich neu erstellen lassen? Werde ich damit irgendetwas riskieren?

Hangfire.State unter Verwendung der gesamten Azure Basic-Datenbank 2 GB Speicherplatz. enter image description here

Antwort

9

Ich landete die Tabellen fallen, zuerst die Abfrage überhaupt nicht funktioniert, es ging einfach weiter und nichts passierte. Ich habe dann TRUNCATE TABLE [HangFire].[State] verwendet und es hat alles wie ein Charme nach getan. Hier ist das Skript, das ich für Hangfire 1.5.6 mit UseSqlServerStorage verwendet:

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

Aber vergessen Sie nicht die Fremdschlüssel wieder hinzufügen, nachdem sie fallen zu lassen. By the way, es ist besser, auf die neueste [1.6.5] (https://www.nuget.org/packages/Hangfire/) zu aktualisieren, es gab eine Menge Korrekturen seit Ihren Versionen für Hangfire.Core und Hangfire. SqlServer, um nicht mit solchen Problemen konfrontiert zu werden. – odinserj

Verwandte Themen