Hangfire
Hangfire jobs zijn de automatische taken die draaien op de achtergrond. Deze zijn bepalend voor een werkend Spider platform.
De hangfire jobs (taken die automatisch op de achtergrond draaien) worden deels geconfigureerd in de Web.config bestanden en zijn handmatig aan te roepen vanaf de IIS server.
Het hangfire dashboard is alleen vanaf de server zelf in te zien en te gebruiken.
Hangfire Link: https://<spider-baseUrl/dashboard/hangfire/recurring
Info
De hangfirejobs zijn alleen vanaf de IIS server te zien in een browser. Als de link niet werkt, bewerk dan het Windows host-bestand en voeg de DNS-naam toe aan het lokale ipadres.
Hangfire - configuratie
De configuratie voor de achtergrond taken wordt uitgevoerd met de instellingen die in de Worker web.config ingesteld staan. C:\inetpub\wwwroot\IWM_INSTANCE\worker\Web.config
en zijn tussen de <appSettings>
en </appSettings>
tags terug te vinden. Onderstaand een overzicht van de standaard instellingen van deze taken.
Info
Vanaf 1.8.0 zijn de onderstaande webconfiguraties zijn verplaatst naar het Spider dashboard in Settings > Cronjob
Taak - webconfig | Runtime | In stellen in | nieuw in |
---|---|---|---|
PerformanceTime x | 40 22 ** * | Settings > Cronjob | |
CheckSLATime | 00 23 ** * | Settings > Cronjob | |
ScrapeTime | /30 8-21 ** | Settings > Cronjob | |
NeedsOkTime | /20 8-21 ** | Settings > Cronjob | |
MtInfoTime | 0 1 ** * | Settings > Cronjob | |
RFNScrapeTime | 10 23 ** * | Settings > Cronjob | |
BusinessSupportDateTime | /5 ** * | Settings > Cronjob | |
MoveAlarmsToHistoryTime | 20 22 ** * | Settings > Cronjob | |
MoveAuditLogsToHistoryNumberOfDaysToRetain | 100 | Settings > Cronjob | |
MoveGeneralSignalLogsToHistoryTime | 0 22 ** * | Settings > Cronjob | |
MoveRequestsToHistoryTime | 50 22 ** * | Settings > Cronjob | |
DeleteBodyContentFromHistoryEnabled | true/false | Worker/Web.config | |
DeleteBodyContentFromHistoryTime | 15 1 ** * | worker/Web.config | |
DeleteBodyContentFromHistoryNumberOfMonthsToRetain | 1 | worker/Web.config | |
DeleteVariablesContentFromHistoryEnabled | true/false | worker/Web.config | |
DeleteVariablesContentFromHistoryNumberOfMonthsToRetain | 1 | worker/Web.config | |
UpdateWorkstationStatusToInUpdateTime | /20 ** * | Settings > Cronjob | |
SaioScheduleTime | vervallen | ||
ImportTaskConfigurationProcessesTime | /2 ** * | Settings > Cronjob | |
FillPriorityInWorkloadTime | vervallen | ||
ErrorLogEnabled | true/false | Settings > Cronjob | |
DeleteErrorLogContentTime | 45 1 ** * | Settings > Cronjob | |
DeleteErrorLogContentNumberOfDaysToRetain | 30 | Settings > Cronjob |
Hangfire - taken
Taak - Hangfire | Actief |
---|---|
Performance (1) | vervallen |
ProvideBusinessSupportData | Ja |
RFNScrape | Ja |
NeedsOk | Ja |
Scrape | Ja |
MtInfo | Ja |
MoveGeneralSignalLogsToHistory | Ja |
MoveAuditLogsToHistory | Ja |
MoveAlarmsToHistory | Ja |
CheckSla | Ja |
MoveRequestsToHistory | Ja |
FillProcessIdInRequest (2) | vervallen |
FillProcessIdInRequestHistory (3) | vervallen |
UpdateWorkstationStatusToInUpdate (4) | Ja |
SaioScheduler (5) | vervallen |
ImportTaskConfigurationProcessesTime (6) | Ja |
DeleteErrorLogContent (7) | Ja |
ProvideBusinessSupportConfigurationData(8) | Ja |
(1): Deze taak is niet meer actief sinds 1.6.7
(2): Dit is een éénmalige taak welke gedraaid moet worden bij een upgrade vanaf versie 1.6.6+. - Dit vult de SQL Request tabel aan met het ProcessId. Is vervallen vanaf 1.8.0
(3): Dit is een éénmalige taak welke gedraaid moet worden bij een upgrade vanaf versie 1.6.6+ - Dit vult de SQL RequestHistory tabel aan met het ProcessId. - Is vervallen vanaf 1.8.0
(4): Dit is een taak die een workstation op een inUpdate status zet of eruit haalt.
(5): Deze taak is vervallen vanaf versie 1.7.0. Er is een wijziging in de Spider HeartBeatservice gedaan die deze HangfireJob vervangt.
(6): Deze taak is toegevoegd vanaf versie 1.6.11 voor de Import taak functionaliteit.
(7): Deze taak is toegevoegd vanaf versie 1.7.0 en wordt zichtbaar in Hangfire zodrat de status van ErrorLogEnabled
op true gezet wordt.
(8): Nieuw in versie 1.11.0. Deze taak stuurt SAIO- en spider licentie informatie en Spider processen naar het Nidaros BSD dashboard.
Algemene taken
ProvideBusinessSupport ConfigurationData
Deze taak stuurt extra informatie van het RPA platform naar het Nidaros BSD voor monitoring van onze klanten. Deze taak is met name voor Nidaros van belang voor het monitoren van de processen van onze klanten.
Wil je dat Nidaros ook jouw monitoring overneemt? Neem dan contact met ons op voor de mogelijkheden.
SAIO informatie
Vanaf SAIO 6.1 kunnen wij de licentie informatie uitlezen en via de Spider naar ons BSD laten versturen. Via deze manier kunnen we onze klanten sneller en beter adviseren indien er een upgrade plaats moet vinden.
Spider licentie informatie
We hebben deze taak ook uitgebreid om Spider licentie informatie uit kunnen lezen. Via deze manier kunnen we onze klanten sneller en beter adviseren indien er een upgrade plaats moet vinden.
Spider processen
Ook wordt er via deze taak de Spider processen verstuurd (geëncrypt) naar ons BSD.
CheckSLA Time
Deze taak controleert of er requests zijn die buiten de SLA tijd zijn voltooid. Als dit het geval is, wordt de “flag” SLA Expired op True gezet en wordt er een alarm gegenereerd met de melding:
Request nr
exceeded the agreed maximum lead time for process: procesnaam
Scrape Time
Deze taak pakt alle requests op met de failed statussen:
- Request_FailReported_Name
- Request_WorkFailed_Name
- Request_StagingFailed_Name
En zet deze door naar een eindstatus: Request_RecordFailed_Name. Tevens wordt er een bijbehorende AuditTrail melding weggeschreven. Hierna gaat de taak aan de slag met de Workloads die zijn blijven hangen met de status Workload_RobotProcess_Name of Workload_RecordRequested_Name
Condities voor het oppakken van deze zijn:
- Het proces moet Scrapable zijn (CanbeScraped = True)
- Scraping moet aan staan op de processtap.
De acties die hierna uitgevoerd worden zijn:
- Workload met de status Workload_RecordRequested_Name wordt altijd teruggezet naar Workload_RecordNew_Name. Ook wordt er een bijbehorende AuditTrail melding weggeschreven.
- Workload met de status Workload_RobotProcess_Name wordt altijd doorgezet naar Workload_RobotFailed. Ook wordt er een SendFailEmail verstuurd naar de gebruiker. Als laatste wordt er nog een bijbehorende AuditTrail melding weggeschreven.
NeedsOk Time
Pakt alle requests op die te lang op NeedsOk zijn blijven staan en verstuurt de E-mails naar de desbetreffende personen die een NeedsOk melding moeten ontvangen, wanneer dit binnen de interval valt.
RFN Scrape Time
Deze taak pakt alle requests op met de status RFN die langer dan 7 dagen geleden zijn voltooid. Deze requests krijgen de status RRF. Tevens wordt er een melding weggeschreven in de Audit Trail:
Request nr
Process: Request Failed Not Reported Scraping Process at datum
Details: Request status changed from RFN to RRF.
MtInfo & Business Support
MtInfo Time
Deze taak zorgt ervoor dat de managementinformatie wordt gegenereerd en verstuurd per E-mail naar de betreffende personen die in de SLA MtInfo zijn toegevoegd. De Mtinfo kan dagelijks, wekelijks of maandelijks verstuurd worden. De frequentie periode kan nu per gebruiker ingesteld worden bij de SLA van een proces.
Business SupportData Time
Indien het gewenst is dat Nidaros je RPA platform monitort, dan kan deze instelling geactiveerd worden in de Spider instellingen.
Deze taak verstuurt anonieme data per E-mail of API call naar Nidaros Business Support. Dit is in de Spider in te stellen in Settings > Business Support
.
Dit geeft Nidaros de mogelijkheid om uw processen te kunnen monitoren zonder dat Nidaros fysiek toegang nodig tot je machines.
Taken - Historie
De historie taken worden gebruikt om de hoofdtabellen van de Spider schoon te houden en zo ook de performance te kunnen garanderen.
Move Alarms To History Time
Alle alarmen met de status Alarm Record Solved (ARS) worden verplaatst naar de historie tabellen.
SQL tabellen:
- Alarm > AlarmHistory
Move AuditLogs To History Time
Alle auditlogs ouder dan het opgegeven aantal dagen (NumberOfdaysToRetain) (standaard 100 dagen), worden verplaatst naar de historie.
SQL tabellen:
- AuditLogs > AuditLogHistory
- AuditLogDetails > AuditLogDetailHistory
Move GeneralSignalLogs To History Time
Alle general signallogs behalve de meeste recente per combinatie (general signal / workstation) worden verplaatst naar de historie tabellen. De meest recente blijven in de actuele tabel staan. Dit is nodig voor de heartbeat functionaliteit
SQL tabellen:
- GeneralSignalLog > GeneralSignalLogHistory
Move Requests To History Time
Alle requests met de volgende statussen worden overgezet naar de historie tabellen.
- Request Record Success (RRS)
- Request Record Failed (RRF)
- Request Record Returned (RRR)
Alle bijbehorende sub-objecten, zoals audittrail, reportlog, signallog, staging en workloads worden ook naar de historie verplaatst.
SQL tabellen:
- AuditTrail > AuditTrailHistory
- ReportLog > ReportLogHistory
- SignalLog > SignalLogHistory
- Staging > StagingHistory
- Workload > WorkloadHistory
Taken – Schonen van Data (privacy)
De Spider biedt de mogelijkheid tot het schonen van data in de Spider. Afhankelijk van jullie voorwaarden m.b.t dataschoning is dit in te stellen in de Spider web configuratie.
Delete BodyContent From History
Voorwaarden:
- De waarde van DeleteBodyContentFromHistoryEnabled dient op True te staan.
Dan wordt de taak DeleteBodyContentFromHistoryTime getriggered.
Alle body informatie van een request en de staging tabel ouder dan het opgegeven aantal maanden (DeleteBodyContentFromHistoryNumberOfMonthsToRetain) wordt verwijderd en overschreven met de tekst: The body has been deleted for privacy reasons at <huidige_datum + tijd
Delete Variables Content From History
Voorwaarden:
- De waarde van DeleteVariablesContentFromHistoryEnabled dient op True te staan.
Dan wordt de taak DeleteVariablesContentFromHistoryTime getriggerd Alle variabele informatie van de staging tabel ouder dan (DeleteVariablesContentFromHistoryNumberOfMonthsToRetain) wordt gewist overschreven met de melding:
The variables have been deleted for privacy reasons at <huidige_datum + tijd>
Taken - SAIO Koppeling
Er zijn twee taken die gebruikt worden bij het opnieuw inplannen van een SAIO robot. Meer informatie over de statussen is te vinden op Workstation in Update
Update Workstation Status To In Update
Deze werkt de status van het workstation bij in de Spider. Zodra een workstation in een onderhoudsschema komt, past deze taak de status van het worksattion aan naar "in Update". Als een een planning vervalt, dan zet deze taak de status van het workstation terug naar de vorige status.
SAIO Scheduler
Deze taak is vervallen in versie 1.7.0. Er is een wijziging in de Spider HeartBeatservice gedaan die deze HangfireJob vervangt.
Import Task Configuration Processes Time
Deze taak wordt standaard elke 2 minuten uitgevoerd. Hij controleert of er importtaakconfiguraties zijn die aan de Todo moeten worden toegevoegd. Wanneer de taak wordt uitgevoerd zal een timer worden ingesteld en gebruikt. Wanneer een nieuwe taak om de 10 minuten moet worden uitgevoerd, zal de Hangfirejob een starttimer instellen. Tot de timer overeenkomt met de tijd+interval instelling of deze overschrijdt, zal een nieuwe aanvraag aan de Todo worden toegevoegd.
DeleteContent - Spiderlogging
Indien debugging nodig is om te achterhalen wat er fout gaat met API calls kan deze functie geactiveerd worden in de Worker Webconfig.
Worker Webconfig instellingen activeren:
- Zet
ErrorLogEnabled
op true - Pas de
DeleteErrorLogContentNumberOfDaysToRetain
aan naar het gewenste aantal. Alle data ouder dan x wordt dan automatisch verwijdert uit de SQLErrorLog
tabel - Pas de tijd aan van
DeleteErrorLogContentTime
wanneer moet draaien.
| ErrorLogEnabled | true | | DeleteErrorLogContentTime | 45 1 ** * | | DeleteErrorLogContentNumberOfDaysToRetain | 10 |
- Herstart de IIS site hierna
- Ververs de Worker swagger pagina of maak een API call naar de WorkerAPI om de API te activeren.
Zodra de ErrorLogEnabled op true is gezet worden alle API calls in de workerAPI die fout gaan gelogged in de SQL tabel ErrorLog
. Dit geeft een eerste inzage voor debugging.
Het is aan te raden de Logging functie alleen te gebruiken als er problemen optreden. Na het debuggen kan de ErrorLogEnabled
weer op false
gezet worden en IIS te herstarten.
DeleteContent - Voorbeeld
Trigger een Report met een ReportID welke niet bestaat in de Spider.
Output API Call:
"Message": "There was an error adding the report log: Cannot find the specified Report"
SQL: Errorlog ErrorLogId: 1 RequestId: 6587 WorkloadId: NULL InsertDt: 2022-11-30 12:07:58.087
Message:
RequestId: 6587 WorkloadId: N/A Url: /worker/v3/reportlog HTTP Method: POST Details: There was an error adding the report log: Nidaros.IWM.Library.Exceptions.ForeignKeyException: Cannot find the specified Report at Nidaros.IWM.Library.Exceptions.ExceptionHandler.HandleDBException(Exception exception) in D:\Sources\iwm_dashboard\APIs\Library\Exceptions\ExceptionHandler.cs:line 49 at Nidaros.IWM.DataLayer.Components.ReportLogComponent.<Add>d__7.MoveNext() in D:\Sources\iwm_dashboard\APIs\DataLayer\Components\ReportLogComponent.cs:line 138 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Nidaros.IWM.MiddleTier.Managers.ReportLogManager.<AddAsync>d__3.MoveNext() in D:\Sources\iwm_dashboard\APIs\MiddleTier\Managers\ReportLogManager.cs:line 61 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Nidaros.IWM.RobotAPI.Controllers.Base.ApiExtendedBaseController`1.<Post>d__0`1.MoveNext() in D:\Sources\iwm_dashboard\APIs\RobotAPI\Controllers\Base\ApiExtendedBaseController.cs:line 0