Meine Anwendung enqueue Jobs mit dem ArgumentWie kann der Argumentwert in den Details des Erfolgsjobs ausgeblendet werden?
List<SomeClass>
wo Someclass von JSON von newtosoft Json.NET deserialisiert wird. Wie folgt aus:
BackgroundJob.Enqueue(() => myJob.jobStartMethos(List<SomeClass> argument));
Wenn offen Erfolg Job Details Ich sehe schon:
MyJobClass myJob = Activate<MyJobClass>();
myJob.jobStartMethod(
new { FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string") ... etc...
Dieses Argument ist zu groß und verhindert, dass wirklich Details zu sehen. Wie kann ich das beheben? Ich habe versucht, toString() in meiner SomeClass zu überschreiben, aber das hilft nicht. Und ich habe versucht
JobHelper.SetSerializerSettings(new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.None
});
Aber das hilft nicht.
Ich bin nur neugierig, welche Werte passieren Sie dort? Große Hintergrundjobargumente sind im Allgemeinen eine schlechte Übung. – odinserj
Ich habe einen wiederkehrenden Job in Hangfire. Dieser Job wird alle 15 Minuten ausgeführt und fragt CRM nach REST-API ab, um die neuesten aktualisierten Objekte abzurufen (CRM ist zu groß und eine solche Interaktion ist der einzig mögliche Weg). Dieses Objekt enthält eine Beschreibung, einen Verlauf usw. Nach der Deserialisierung von Objekten aus der CRM-Antwort wurde JSON dann als Argument für Hintergrundjobs bereitgestellt. Hintergrund-Jobs, die Änderungen im Objekt untersuchen und auf eine bestimmte Art reagieren (Änderungen vornehmen, in anderen Systemen warnen) Hintergrund-Jobs sind zu viele. Zur Kontrolle dieser Arbeit habe ich genau model.listen (objects) als Hintergrundjobs verwendet statt async run model.listen (objects) – sintasy
Aber was ist, wenn Sie eine andere Tabelle erstellen, die Werte dort ablegen und an Hangfire nur die Kennung eines neuen Datensatzes übergeben (und löschen eine Aufzeichnung nach der Verarbeitung)? Auf diese Weise können Sie Ihre Methoden auch idempotent machen. – odinserj