Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introducing search in Hangfire Dashboard.
Minimal changes, but PLEASE BE AWARE there are breaking changes (see IMonitoringApi.cs) which I cannot see how we can avoid. On the other hand the search implementation could be very easy task for other projects derived from
IMonitoringApi
.Search works as "Contains" and applies to the following fields:
Search is available in:
Note:
State
(exception messages or time executed). Could be improved later. But I found it less important than the search by method name or arguments.Flexibility:
The search field which introduced in this PR could allow us to customize the search abilities in future. For example we can introduce some kind of language which would allow to search by multiple fields. Or use third party extensions which would do that. Or add such improvements in PRO version. Similar how github search field works. Eg:
MyJob
// Search in job InvocationData only,arg:9c5b94b1-35ad-49bb-b118-8e8fc24abf80
// Search in job Arguments by entity ID,state:NullReferenceException
// Search in state data by exception,date:2024-01-01
// Search by state date,param:RecurringJobId="easy_job1"
// Search by job parameterparam:Tenant="ABC"
// Another search by job parameterMyJob,state:NullReferenceException,date:2024-01-01
// Search by multiple fields,MyJob,param:Tenant="ABC"
// Another search by multiple fields,Closes #2287
Closes #2253
Closes #717
Screenshots: