Skip to content

Commit a0c1c7f

Browse files
committed
EDITSKS-5515: some converters optimization
1 parent 50dd26b commit a0c1c7f

File tree

5 files changed

+36
-26
lines changed

5 files changed

+36
-26
lines changed

Cassandra.DistributedTaskQueue.Monitoring/Indexer/RtqElasticsearchIndexerSettings.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,6 @@ public RtqElasticsearchIndexerSettings(string eventFeedKey, string rtqGraphitePa
2323
RtqGraphitePathPrefix = rtqGraphitePathPrefix;
2424
}
2525

26-
public static JsonSerializerOptions GetJsonOptions()
27-
{
28-
var defaultJsonSerializerOptions = new JsonSerializerOptions();
29-
defaultJsonSerializerOptions.Converters.Add(new TruncateLongStringsConverter(500));
30-
defaultJsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
31-
defaultJsonSerializerOptions.Converters.Add(new TimestampJsonConverter());
32-
defaultJsonSerializerOptions.Converters.Add(new TimeGuidJsonConverter());
33-
defaultJsonSerializerOptions.Converters.Add(new OmitBinaryAndAbstractPropertyConverter());
34-
35-
return defaultJsonSerializerOptions;
36-
}
37-
3826
public string EventFeedKey { get; }
3927

4028
public string RtqGraphitePathPrefix { get; }
@@ -66,4 +54,16 @@ public override string ToString()
6654
$"IndexingThreadsCount: {IndexingThreadsCount}, " +
6755
$"BulkIndexRequestTimeout: {BulkIndexRequestTimeout}";
6856
}
57+
58+
public static readonly JsonSerializerOptions DefaultJsonSerializerSettings = new()
59+
{
60+
Converters =
61+
{
62+
new TruncateLongStringsConverter(500),
63+
new JsonStringEnumConverter(),
64+
new TimestampJsonConverter(),
65+
new TimeGuidJsonConverter(),
66+
new OmitBinaryAndAbstractPropertyConverter()
67+
}
68+
};
6969
}

Cassandra.DistributedTaskQueue.Monitoring/Indexer/TaskMetaProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ private void IndexBatch((TaskMetaInformation TaskMeta, TaskExceptionInfo[] TaskE
9292
{
9393
payload[2 * i] = JsonSerializer.Serialize(new {index = CreateIndexInfo(batch[i].TaskMeta)});
9494
var taskIndexedInfo = BuildTaskIndexedInfo(batch[i].TaskMeta, batch[i].TaskExceptionInfos, batch[i].TaskData);
95-
payload[2 * i + 1] = JsonSerializer.Serialize(taskIndexedInfo, RtqElasticsearchIndexerSettings.GetJsonOptions());
95+
payload[2 * i + 1] = JsonSerializer.Serialize(taskIndexedInfo, RtqElasticsearchIndexerSettings.DefaultJsonSerializerSettings);
9696
}
9797
perfGraphiteReporter.ReportTiming("ElasticsearchClient_Bulk", () => elasticClient.Bulk<StringResponse>(PostData.MultiJson(payload), bulkRequestTimeout).DieIfBulkRequestFailed());
9898
}

Cassandra.DistributedTaskQueue.Monitoring/Json/JsonObjectExtensions.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,16 @@ internal static class JsonObjectExtensions
99
{
1010
public static string ToPrettyJson<T>(this T obj)
1111
{
12-
var options = new JsonSerializerOptions();
13-
options.Converters.Add(new JsonStringEnumConverter());
14-
options.Converters.Add(new TimestampJsonConverter());
15-
options.Converters.Add(new TimeGuidJsonConverter());
16-
17-
return JsonSerializer.Serialize(obj, options);
12+
return JsonSerializer.Serialize(obj, jsonSerializerSettings);
1813
}
14+
15+
private static readonly JsonSerializerOptions jsonSerializerSettings = new()
16+
{
17+
Converters =
18+
{
19+
new JsonStringEnumConverter(),
20+
new TimestampJsonConverter(),
21+
new TimeGuidJsonConverter()
22+
}
23+
};
1924
}

Cassandra.DistributedTaskQueue.Monitoring/Json/ObjectJsonSerializer.cs renamed to Cassandra.DistributedTaskQueue.Monitoring/Json/TaskDataJsonSerializer.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,16 @@ public override IRtqTaskData Read(ref Utf8JsonReader reader, Type typeToConvert,
1515

1616
public override void Write(Utf8JsonWriter writer, IRtqTaskData value, JsonSerializerOptions options)
1717
{
18-
JsonSerializerOptions jsonSerializerOptions = new();
19-
jsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
20-
jsonSerializerOptions.Converters.Add(new TimeGuidJsonConverter());
21-
jsonSerializerOptions.Converters.Add(new TimestampJsonConverter());
22-
23-
JsonSerializer.Serialize(writer, value, jsonSerializerOptions);
18+
JsonSerializer.Serialize(writer, value, staticSerializerOptions);
2419
}
20+
21+
private static readonly JsonSerializerOptions staticSerializerOptions = new()
22+
{
23+
Converters =
24+
{
25+
new JsonStringEnumConverter(),
26+
new TimeGuidJsonConverter(),
27+
new TimestampJsonConverter()
28+
}
29+
};
2530
}

Cassandra.DistributedTaskQueue.Tests/UnitTests/Monitoring/TaskIndexInfoSerializationTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ private void Check(TaskIndexedInfo source, TaskIndexedInfo expected)
7373

7474
private string Serialize(object obj)
7575
{
76-
return JsonSerializer.Serialize(obj, obj.GetType(), RtqElasticsearchIndexerSettings.GetJsonOptions());
76+
return JsonSerializer.Serialize(obj, obj.GetType(), RtqElasticsearchIndexerSettings.DefaultJsonSerializerSettings);
7777
}
7878

7979
private class Data

0 commit comments

Comments
 (0)