Comments (1)
If I understand correctly there are two questions here:
Q1. Is there any way to know how many threads are running?
It depends what you mean. The ServiceContainer._worker_pool
is the pool of Greenthreads used to run workers (i.e. the threads used to execute service methods). You can call pool.running()
to find out how many workers are currently active. I guess this is the metric you really want to know? If so, there are better ways to track the information, such as a DependencyProvider
that increments a counter on worker_setup
and decrements it again on worker_teardown
.
Nameko uses threads for other things other than running workers too. Most entrypoint implementations rely on a background thread (e.g. the Timer
). If these threads are managed by nameko (which they should be, aren't guaranteed to be) you can find them in the ServiceContainer._active_threads
and ServiceContainer._protected_threads
attributes.
Q2. Can @timer
decorated methods know what interval
argument they were called with?
Not in the built-in implementation, but it's pretty easy to create a subclass that passes it in:
from nameko.timer import Timer
class AwareTimer(Timer):
def handle_timer_tick(self):
args = (self.interval,)
kwargs = {}
self.container.spawn_worker(self, args, kwargs)
aware_timer = AwareTimer.decorator
@aware_timer(interval=10)
def testing(self,interval):
print interval # works
The timer
entrypoint is entirely declarative though, so why don't you do the following?
interval = 10
class Service:
@timer(interval)
def testing(self):
print(interval)
The user group is a better place for these kind of questions. If you have any more, please ask them there.
from nameko.
Related Issues (20)
- nameko.exceptions.UnknownService: Unknown service `service_x`
- nameko.exceptions.UnknownService: Unknown service `service_x` HOT 2
- Incompatible versions in the resolved dependencies between Nameko and Celery in Kombu HOT 4
- Use another augmented assignment statement HOT 1
- Check for existing key HOT 1
- Should ipython and bpython be listed in some configuration files? HOT 1
- 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
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.