代码拉取完成,页面将自动刷新
#ifndef _H_WORKERMANAGER_H_
#define _H_WORKERMANAGER_H_
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/time.h>
#include <fcntl.h>
#include <errno.h>
#include <pthread.h>
#include "worker.h"
#define DEFAULTBASEPATH "./"
#define TASKMANAGER_STATUS_INITWORKERERR -1
/* ####### cmd值 ####### */
#define TASKMANAGER_CMD_EXIT 1 /* 马上退出 */
#define TASKMANAGER_CMD_SHOW 2 /* 查看当前运行状态 */
#define ALLCOMPLETE 1
#define RUNNINGERR 2
#define ALLTIMEOUT 3
typedef int (*TaskInit)(struct TaskEnv *tenv);
typedef int (*TaskExit)(struct TaskEnv *tenv);
struct TaskInitStruct {
char taskname[51];
char basepath[101];
char logfilename[51];
char sofilename[51];
int timeout; /* second */
TaskInit taskinit;
TaskExit taskexit;
struct WorkerInitStruct* *array;
};
struct TaskEnv {
char taskname[51];
char basepath[101];
char logfilename[51];
char sofilename[51];
TaskInit taskinit;
TaskExit taskexit;
int cmd;
pid_t pid;
/* cmd可以在管理进程中直接访问 */
/* 指向worker初始化函数数组 */
struct WorkerInitStruct* *pInitWorkerArray;
int workernum;
/* 子线程的环境列表 */
struct WorkerEnv* *workers;
int timeout; /* s为单位, 如果在timeout没有向主线程汇报时间,将导致退出 */
/* 可能是任务已经完成(因为汇报会在添加新任务或者检查到有正在运行的任务是才会汇报 */
};
int StartTaskManager(struct TaskEnv* env, struct WorkerInitStruct* array);
struct TaskEnv* InitTaskEnv();
void FreeTaskEnv(struct TaskEnv* env) ;
int InitWorkers(struct TaskEnv *env);
void InitTaskWithInitStruct(struct TaskEnv* tenv, struct TaskInitStruct *initstruct);
int InitWorkers(struct TaskEnv *env);
int SetTaskBasepath(struct TaskEnv *tenv, char *path);
int DoTaskManager(struct TaskEnv *env, struct TaskInitStruct *initstruct);
struct TaskEnv *GetTaskEnvByPid(pid_t pid);
int GetTaskCmd(struct TaskEnv *tenv);
int SetTaskLog(struct TaskInitStruct *tenv);
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。