Comments (11)
@papakaliati - create a new branch off the current master branch (a nice new clean one). You'll see that the scheduler is quite different now.
So, basically, add a new method to IScheduledEventConfiguration
:
IScheduledEventConfiguration When(Func<Task> predicate);
Internally, the ScheduledEvent
will implement this new method.
Just add one private field to hold Func<Task>
(so only one predicate is ever used).
Put the check in InvokeScheduledEvent
as the first thing. If When
is not null, and it returns false, then return
right away. Otherwise, keep going as normal.
Hopefully that make sense?
Thanks for the help!
from coravel.
Reporting for duty.
from coravel.
Hmm can't see you in the list. O well. I'll let you know when things are ready to go 👍
from coravel.
from coravel.
lol Ya, actually I meant Func<Task<bool>>
.
So that call should be awaited when being checked in the ScheduledEvent
.
Sorry about that!
from coravel.
from coravel.
from coravel.
I think just using Func<Task<bool>>
is fine.
If there's a time when the user doesn't need to use an async method / await, they should be able to use return Task.FromResult(true);
So some good unit tests you could build are something like:
bool shouldRun = true;
scheduler
.Schedule(someAction)
.When(() => return Task.FromResult(shouldRun));
And maybe another one something like this:
Func<Task<bool>> shouldRun = () => Task.FromResult(true);
scheduler
.Schedule(someAction)
.When(shouldRun);
And to include awaiting:
Func<Task<bool>> shouldRun = async () =>
{
await Task.Delay(0);
return true;
}
scheduler
.Schedule(someAction)
.When(shouldRun);
And of course, some cases when "shouldRun" is false and make sure the task didn't run. Those are just off the top of my head... hopefully they ok lol.
Thanks @papakaliati !
from coravel.
from coravel.
Done at #32
from coravel.
Cheers mate, thanks 👍
from coravel.
Related Issues (20)
- Sample to show how to execute Task on demand in .NET core 7
- Using Dependency Injection with ScheduleAsync HOT 1
- Run Task One Another / Control Concurrency in Queues HOT 1
- Is Coravel good fit for Blazor Server? HOT 4
- Stop scheduled job HOT 2
- Cron Expressions that support Seconds
- Design/Run Time
- Add support for setting Sender in mailer
- Add support for adding attachments as LinkedResources in MailMessage HOT 1
- Dispatcher.Broadcast doesn't work correctly when my listener class implements more than one IListener<> interfaces HOT 1
- Worker Service with Scheduler doesn't execute IInvocable using EveryMinute().WeekDay() on a Friday. HOT 1
- Advanced cron expressions HOT 2
- Is it possible for a job (or something else) to know when the next execution is scheduled for? HOT 2
- Unwanted Clock Drift HOT 2
- Add throttling when queuing items
- Extend Coravel Schedule With CoravelJobAttrbutes
- Scheduler does not run until WEB API server receives its first HTTP Request HOT 7
- How to use Event Broadcasting in worker service
- Task, scheduled to run on the same second, are not run in order they were added. HOT 1
- Turn off logging "Coravel's scheduler is behind" HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from coravel.