Comments (10)
I'm afraid i don't understand you..
You want to wait on finish of last round and then new one will start, don't you?
from nameko.
the problem is that in the current implementation, we measure how long self.handle_timer_tick()
. but that function calls spawn_worker
which is asynchronous, and returns as soon as the handler is spawned, and doesn't wait for it to finish.
in the example above, you see 'tick'
every second, even though the handler takes 5 seconds to run
from nameko.
I'm in favour of fixing this. I think the semantics should be either:
- At most once per
interval
seconds or - Exactly
interval
seconds after the previous execution finishes
Looks like @Sparkycz's PR does the second option.
from nameko.
to me it looks like the pr waits interval - elapsed_time
, which is what the original code tried to do, and my preferred choice i think. is this your option 1?
from nameko.
the both PRs are wrong.. i'm sending the first one now and then i will try to solve the second one. I'm sorry I havn't had a free time for it..
from nameko.
Currently it probably does what we want. If the service method works longer than interval Timer waits for the completion and then fires the next one.
from nameko.
@davidszotten Yep, waiting interval - elapsed_time
is Option 1 and also my preference.
@Sparkycz I will add a few comments to the PR. Please address them and then we'll merge this down. Thanks!
from nameko.
Is this still being worked on? If it's just a matter of finishing up the tests I can give it a try
from nameko.
@daviskirk I think almost certainly not. A fix would be great!
from nameko.
@mattbennett see #579
from nameko.
Related Issues (20)
- Why using dnspython 1.x instead of 2.x ? HOT 8
- need upgrade to support python 3.10 HOT 2
- Publisher crashing when exchange is provided and RabbitMQ is down
- Nameko crashes when consuming illegal messages HOT 6
- [ DOUBT ] Events Pub / Sub - How can I make a consumer only run one event at a time
- from nameko.rpc import rpc class GreetingService: name = "greeting_service" def hello(self, name): return "Hello, {}!".format(name)
- Timer work on master process or every process? HOT 2
- dnspython dependency version overly restrictive HOT 3
- "verify_amqp_uri" in the module "nameko.amqp.utils" had been removed? HOT 2
- Should HttpRequestHandler print out the exception to the browser? HOT 2
- nameko multiprocess problem HOT 1
- Do you die? we need you to improve Nameko Library HOT 5
- DB Migrations not working with Flask-Migrate HOT 2
- Linking nameko and golang by RPC HOT 1
- dnspython version HOT 1
- nameko run faild when httpx installed
- event_handler should be agnostic to dispatching service
- Drop support for Python 3.5 through 3.7
- directly connect to a RabbitMQ cluster
- Error after eventlet update to 0.34.x
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 nameko.