salsa
0.4.0
|
NodeManagerZyre class
More...
#include <NodeManagerZyre.hh>
Public Member Functions | |
NodeManagerZyre (NodeZyre *pNodeZyre) | |
virtual | ~NodeManagerZyre () |
virtual void | resultTaskToExternal (Job *job, TaskInfo *task) |
Handle return of task and send it to external client. More... | |
virtual Socket * | onEnter (std::string self, std::string fromType, Message *pMsg, std::vector< std::string > &out) |
virtual Socket * | onExit (std::string self, Message *pMsg, std::vector< std::string > &out) |
virtual Socket * | onWhisper (std::string self, Message *pMsg, std::vector< std::string > &out) |
virtual bool | handleTaskPool (void *pPool) |
virtual void | addTaskSlot () |
virtual void | runTask (TaskState *pTaskState, std::string wk, std::string upstream) |
Run task interface. More... | |
virtual bool | sendWhisper (Socket *pSocket, std::string to, std::vector< std::string > &vect) |
void | print (std::string opt="") const |
void | addConsumer (std::string uuid, std::shared_ptr< Socket > s) |
void | addFeeder (std::string uuid, std::shared_ptr< Socket > s) |
void | addWorker (std::string uuid, std::shared_ptr< Socket > s) |
void | addTask (TaskInfo *taskInfo, std::string cuuid, std::string fuuid, Salsa::Job::EQueueType t=Salsa::Job::pending) |
std::shared_ptr< Feeder > | feeder (std::string uuid) const |
std::shared_ptr< Consumer > | consumer (std::string uuid) const |
std::shared_ptr< Worker > | worker (std::string uuid) const |
Job * | job (std::string uuid) |
TaskPool * | taskPool () |
Get NM's task pool. More... | |
bool | hasJobs () const |
virtual bool | terminateFinishedJobs () |
uint64_t | finishedJobTimeout () const |
Returns finished job timeout. | |
void | finishedJobTimeout (uint64_t t) |
Sets finished job timeout. | |
int32_t | nSlots (double mult=1.0) const |
void | jobs (std::string clientUUID, std::vector< std::string > &jobs) const |
TaskInfo * | getNextTask () |
virtual void | resultTask (TaskInfo *task) |
virtual void | noMoreTasks (std::string jobUUID) |
virtual bool | haveMoreTasks () |
virtual bool | haveMoreTasks (std::string jobUUID) |
virtual void | terminateJob (std::string uuid) |
virtual void | terminateAllJobs (bool finishedonly=false) |
virtual void | publisher (Publisher *p) |
virtual Publisher * | publisher () const |
virtual void | publish (std::string id, bool force=false) const |
Static Public Member Functions | |
static std::shared_ptr< spdlog::logger > | getConsoleOutput () |
Get console output. | |
static void | setConsoleLevel (spdlog::level::level_enum level) |
Sets console log level. | |
Protected Attributes | |
std::map< std::string, Job * > | mJobs {} |
List of jobs. | |
std::vector< std::string > | mActiveJobs {} |
List of active jobs. | |
std::vector< std::string > | mFinishedJobs {} |
List of finished jobs. | |
uint64_t | mFinishedJobTimeout |
Finished job timeout in seconds. | |
std::map< std::string, std::shared_ptr< Worker > > | mWorkers {} |
List of Workers. | |
std::map< std::string, std::shared_ptr< Consumer > > | mConsumers {} |
List of Consumers. | |
std::map< std::string, std::shared_ptr< Feeder > > | mFeeders {} |
List of Feeders. | |
TaskPool * | mpTaskPool = nullptr |
Task pool. | |
Publisher * | mpPublisher = nullptr |
Publisher. | |
Private Attributes | |
NodeZyre * | mpNodeZyre = nullptr |
Current zyre node. | |
Salsa::NodeManagerZyre::NodeManagerZyre | ( | NodeZyre * | pNodeZyre | ) |
Constructor
Definition at line 8 of file NodeManagerZyre.cc.
|
virtual |
Destructor
Definition at line 14 of file NodeManagerZyre.cc.
|
inherited |
Add consumer
Definition at line 55 of file NodeManager.cc.
References Salsa::NodeManager::mConsumers.
Referenced by Salsa::NodeZyre::init().
|
inherited |
Add feeder
Definition at line 64 of file NodeManager.cc.
References Salsa::NodeManager::mFeeders.
Referenced by Salsa::NodeZyre::init().
|
inherited |
Adds task
subscribe to all clients
Definition at line 226 of file NodeManager.cc.
References Salsa::Job::addTask(), Salsa::Job::consumer(), Salsa::NodeManager::feeder(), Salsa::Job::feeder(), Salsa::NodeManager::mActiveJobs, Salsa::NodeManager::mFeeders, and Salsa::NodeManager::mJobs.
Referenced by Salsa::NodeZyre::handleExternalZmq(), Salsa::Worker::onWhisper(), and Salsa::Consumer::onWhisper().
|
virtual |
Reserve task slot
Reimplemented from Salsa::NodeManager.
Definition at line 65 of file NodeManagerZyre.cc.
References Salsa::PollerZmq::add(), Salsa::TaskPool::add(), Salsa::TaskState::executor(), mpNodeZyre, Salsa::NodeManager::mpTaskPool, Salsa::TaskExecutor::pipe(), Salsa::ActorZmq::pollerZmq(), Salsa::ActorZmq::SalsaActorForkFn(), and Salsa::TaskExecutor::taskState().
|
inherited |
Add worker
Definition at line 73 of file NodeManager.cc.
References Salsa::NodeManager::mWorkers.
Referenced by Salsa::NodeZyre::init().
|
inherited |
Returns consumer /param uuid UUID
Definition at line 455 of file NodeManager.cc.
References Salsa::NodeManager::mConsumers.
Referenced by Salsa::NodeManager::onEnter(), Salsa::Feeder::onExit(), Salsa::NodeManager::onExit(), Salsa::Feeder::onWhisper(), Salsa::NodeManager::onWhisper(), and Salsa::NodeManager::resultTask().
|
inherited |
Returns uuid is feeder /param uuid UUID
Definition at line 441 of file NodeManager.cc.
References Salsa::NodeManager::mFeeders.
Referenced by Salsa::NodeManager::addTask(), Salsa::NodeZyre::init(), Salsa::NodeManager::nSlots(), Salsa::NodeManager::onEnter(), Salsa::NodeManager::onExit(), Salsa::NodeManager::onWhisper(), and Salsa::NodeManager::publish().
|
inherited |
Return Next task from job
Definition at line 258 of file NodeManager.cc.
References Salsa::NodeManager::mActiveJobs, and Salsa::NodeManager::mJobs.
Referenced by Salsa::Feeder::onWhisper().
|
virtual |
Handle task pool
Reimplemented from Salsa::NodeManager.
Definition at line 120 of file NodeManagerZyre.cc.
References Salsa::TaskPool::handlePipe(), and Salsa::NodeManager::mpTaskPool.
Referenced by Salsa::NodeZyre::exec().
|
inherited |
Returns if jobs are active
Definition at line 519 of file NodeManager.cc.
References Salsa::NodeManager::mActiveJobs.
Referenced by Salsa::Feeder::onEnter().
|
virtualinherited |
Sets no more tasks to any job
Definition at line 565 of file NodeManager.cc.
References Salsa::NodeManager::job(), Salsa::NodeManager::mActiveJobs, and Salsa::NodeManager::mJobs.
Referenced by Salsa::Feeder::onExit().
|
virtualinherited |
Sets no more tasks to job with jobuuid
Definition at line 593 of file NodeManager.cc.
References Salsa::NodeManager::mJobs.
|
inherited |
Returns job /param uuid UUID
Definition at line 480 of file NodeManager.cc.
References Salsa::NodeManager::mJobs.
Referenced by Salsa::NodeZyre::handleExternalZmq(), Salsa::TaskPool::handlePipe(), Salsa::NodeManager::haveMoreTasks(), Salsa::Feeder::onExit(), Salsa::Feeder::onWhisper(), Salsa::NodeManager::publish(), Salsa::NodeManager::resultTask(), resultTaskToExternal(), Salsa::NodeManager::terminateAllJobs(), Salsa::NodeManager::terminateFinishedJobs(), Salsa::Feeder::terminateJob(), and Salsa::NodeManager::~NodeManager().
|
inherited |
Returns list of jobs
Definition at line 527 of file NodeManager.cc.
References Salsa::NodeManager::mJobs.
Referenced by Salsa::Consumer::onExit().
|
virtualinherited |
Sets no more tasks to job with jobuuid
Definition at line 552 of file NodeManager.cc.
Referenced by Salsa::Consumer::onWhisper().
|
inherited |
Returns numer of slots
Definition at line 539 of file NodeManager.cc.
References Salsa::NodeManager::feeder(), and Salsa::NodeManager::mFeeders.
Referenced by Salsa::NodeZyre::handleExternalZmq(), Salsa::Consumer::onWhisper(), and Salsa::NodeManager::resultTask().
|
virtual |
On ENTER event
Reimplemented from Salsa::NodeManager.
Definition at line 21 of file NodeManagerZyre.cc.
References Salsa::NodeManager::onEnter(), sendWhisper(), and Salsa::Message::uuid().
Referenced by Salsa::NodeZyre::exec().
|
virtual |
On EXIT event
Reimplemented from Salsa::NodeManager.
Definition at line 37 of file NodeManagerZyre.cc.
References Salsa::NodeManager::onExit(), sendWhisper(), and Salsa::Message::uuid().
Referenced by Salsa::NodeZyre::exec().
|
virtual |
On WHISPER event
Reimplemented from Salsa::NodeManager.
Definition at line 51 of file NodeManagerZyre.cc.
References Salsa::NodeManager::onWhisper(), sendWhisper(), and Salsa::Message::uuid().
Referenced by Salsa::NodeZyre::exec().
|
inherited |
Prints NodeManager information
Definition at line 30 of file NodeManager.cc.
References Salsa::NodeManager::mConsumers, Salsa::NodeManager::mFeeders, Salsa::NodeManager::mJobs, Salsa::NodeManager::mpTaskPool, Salsa::NodeManager::mWorkers, and Salsa::TaskPool::print().
Referenced by Salsa::NodeZyre::handleExternalZmq(), Salsa::Feeder::onExit(), Salsa::Feeder::onWhisper(), Salsa::NodeManager::resultTask(), and Salsa::NodeManager::terminateJob().
|
virtualinherited |
Publishes node manager state
Definition at line 623 of file NodeManager.cc.
References Salsa::Job::changed(), Salsa::NodeManager::feeder(), Salsa::NodeManager::job(), Salsa::Job::json(), Salsa::NodeManager::mJobs, Salsa::NodeManager::mpPublisher, and Salsa::Publisher::publish().
Referenced by Salsa::NodeZyre::exec(), and Salsa::NodeZyre::handleExternalZmq().
|
virtualinherited |
Sets publisher
Definition at line 607 of file NodeManager.cc.
References Salsa::NodeManager::mpPublisher.
Referenced by Salsa::NodeZyre::init().
|
virtualinherited |
Returns publisher
Definition at line 615 of file NodeManager.cc.
References Salsa::NodeManager::mpPublisher.
|
virtualinherited |
Handle result of pTask
Moving to finished jobs. They will be removed after some inactivity time
Definition at line 286 of file NodeManager.cc.
References Salsa::NodeManager::consumer(), Salsa::Job::consumer(), Salsa::Job::feeder(), Salsa::Job::haveMoreTasks(), Salsa::Job::isFinished(), Salsa::Job::isTaskInQueue(), Salsa::NodeManager::job(), Salsa::NodeManager::mFinishedJobs, Salsa::Job::moveTask(), Salsa::NodeManager::nSlots(), Salsa::NodeManager::print(), Salsa::Job::removeTask(), Salsa::NodeManager::resultTaskToExternal(), Salsa::NodeManager::sendWhisper(), Salsa::Job::size(), and Salsa::Job::uuid().
Referenced by Salsa::Feeder::onWhisper().
|
virtual |
Handle return of task and send it to external client.
Handle results of task and send info to external zmq
Reimplemented from Salsa::NodeManager.
Definition at line 101 of file NodeManagerZyre.cc.
References Salsa::NodeManager::job(), mpNodeZyre, Salsa::NodeZyre::socketExternal(), Salsa::Job::submitterSocketID(), and Salsa::Job::submitterSocketIndex().
|
virtual |
Run task interface.
Run task
Implements Salsa::NodeManager.
Definition at line 90 of file NodeManagerZyre.cc.
References Salsa::TaskState::executor(), Salsa::TaskExecutor::run(), and Salsa::TaskState::task().
|
virtual |
Sends message via zyre whisper
Reimplemented from Salsa::NodeManager.
Definition at line 131 of file NodeManagerZyre.cc.
References Salsa::SocketZyre::zyre().
Referenced by onEnter(), onExit(), and onWhisper().
|
inherited |
Get NM's task pool.
Returns task pool
Definition at line 511 of file NodeManager.cc.
References Salsa::NodeManager::mpTaskPool.
Referenced by Salsa::Worker::onWhisper().
|
virtualinherited |
Terminate all jobs
Definition at line 420 of file NodeManager.cc.
References Salsa::NodeManager::job(), Salsa::NodeManager::mFinishedJobs, Salsa::NodeManager::mJobs, and Salsa::NodeManager::terminateJob().
Referenced by Salsa::NodeZyre::handleExternalZmq().
|
virtualinherited |
Clear finished jobs
Definition at line 389 of file NodeManager.cc.
References Salsa::NodeManager::job(), Salsa::NodeManager::mFinishedJobs, Salsa::NodeManager::mFinishedJobTimeout, and Salsa::NodeManager::terminateJob().
Referenced by Salsa::NodeZyre::exec().
|
virtualinherited |
Cleans job
Definition at line 360 of file NodeManager.cc.
References Salsa::NodeManager::mFeeders, Salsa::NodeManager::mFinishedJobs, Salsa::NodeManager::mJobs, Salsa::NodeManager::mpTaskPool, Salsa::NodeManager::print(), and Salsa::TaskPool::terminateJob().
Referenced by Salsa::NodeZyre::handleExternalZmq(), Salsa::Consumer::onExit(), Salsa::Worker::onWhisper(), Salsa::NodeManager::terminateAllJobs(), and Salsa::NodeManager::terminateFinishedJobs().
|
inherited |
Returns worker /param uuid UUID
Definition at line 467 of file NodeManager.cc.
References Salsa::NodeManager::mWorkers.
Referenced by Salsa::TaskPool::handlePipe(), Salsa::NodeZyre::init(), Salsa::NodeManager::onEnter(), Salsa::NodeManager::onExit(), and Salsa::NodeManager::onWhisper().