@@ -33,13 +33,7 @@ public void Enqueue(Expression<Action> expression)
33
33
34
34
private void Enqueue ( TaskInfo taskInfo )
35
35
{
36
- var settings = new JsonSerializerSettings
37
- {
38
- TypeNameHandling = TypeNameHandling . All
39
- } ;
40
- settings . Converters . Insert ( 0 , new JsonPrimitiveConverter ( ) ) ;
41
-
42
- var jsonString = JsonConvert . SerializeObject ( taskInfo , settings ) ;
36
+ var jsonString = Config . TaskInfoSerializer . Serialize ( taskInfo ) ;
43
37
44
38
Backend . Enqueue ( jsonString ) ;
45
39
}
@@ -61,29 +55,35 @@ public void ExecuteNext()
61
55
public Tuple < string , TaskInfo > SafeDequeue ( )
62
56
{
63
57
var jsonString = Backend . DequeueAndBackup ( ) ;
64
- var taskInfo = JsonToTaskInfo ( jsonString ) ;
58
+ var taskInfo = Config . TaskInfoSerializer . Deserialize ( jsonString ) ;
65
59
return Tuple . Create ( jsonString , taskInfo ) ;
66
60
}
67
61
68
62
public TaskInfo Dequeue ( )
69
63
{
70
64
var jsonString = Backend . Dequeue ( ) ;
71
- var taskInfo = JsonToTaskInfo ( jsonString ) ;
65
+ var taskInfo = Config . TaskInfoSerializer . Deserialize ( jsonString ) ;
72
66
return taskInfo ;
73
67
}
74
68
75
69
public void RestoreExpiredBackupTasks ( )
76
70
{
77
71
TaskInfo taskInfo ;
78
72
79
- while ( ( taskInfo = JsonToTaskInfo ( Backend . PeekBackup ( ) ) ) ? . IsExpired ( Config . MessageRetryTimeSpan ) ?? false )
73
+ while ( true )
80
74
{
75
+ taskInfo = Config . TaskInfoSerializer . Deserialize ( Backend . PeekBackup ( ) ) ;
76
+ if ( taskInfo ? . IsExpired ( Config . MessageRetryTimeSpan ) ?? false )
77
+ {
78
+ break ;
79
+ }
80
+
81
81
var lockKey = nameof ( RestoreExpiredBackupTasks ) + "::" + taskInfo . Id ;
82
82
var backupLock = Backend . LockBlocking ( lockKey ) ;
83
83
84
84
try
85
85
{
86
- var currentTop = JsonToTaskInfo ( Backend . PeekBackup ( ) ) ;
86
+ var currentTop = Config . TaskInfoSerializer . Deserialize ( Backend . PeekBackup ( ) ) ;
87
87
if ( currentTop . Id . Equals ( taskInfo . Id ) )
88
88
{
89
89
Backend . RestoreTopBackup ( ) ;
@@ -95,22 +95,5 @@ public void RestoreExpiredBackupTasks()
95
95
}
96
96
}
97
97
}
98
-
99
- private TaskInfo JsonToTaskInfo ( string jsonString )
100
- {
101
- if ( jsonString == null )
102
- {
103
- return null ;
104
- }
105
-
106
- var settings = new JsonSerializerSettings
107
- {
108
- TypeNameHandling = TypeNameHandling . All
109
- } ;
110
- settings . Converters . Insert ( 0 , new JsonPrimitiveConverter ( ) ) ;
111
-
112
- var taskInfo = JsonConvert . DeserializeObject < TaskInfo > ( jsonString , settings ) ;
113
- return taskInfo ;
114
- }
115
98
}
116
99
}
0 commit comments