Ejemplo n.º 1
0
int prepare_files_taskqueue()
{
    if (is_no_task())
    {
        LOG_STRING("No task in the task queue.");
        return -1;
    }

    TaskArray::iterator it = tasklist.begin();
    TaskPtr p = NULL;
    
    
    for(; it != tasklist.end(); ++it)
    {
        p= *it;
    
        //if (0 != download_task_files(p))
        //{
        //    return -2;
        //}
        char lpath[512];

        sprintf(lpath, "%s\\%s", document_root, p->subdir);
        
        //::CreateDirectory(lpath, NULL);
        mg_mkdir(lpath, 0);
        
    }
    
    //
    g_tqs = TQS_READY;
    
    return 0;
}
Ejemplo n.º 2
0
void Executor::executor_func(void * arg)
{


    Executor *executor=(Executor*)arg;
    executor->mLog.msg("Thread executor id %llu is now alive and waiting  ...\n",executor->id().value);

    TaskArray jobArray;

    while(executor->mIsRunningInternal.test_and_set())
    {
        jobArray.clear();
        executor->queue()->get(jobArray,1,true);

        if (!jobArray.empty())
        {
            executor->mJobTimer.restart();
            auto current = jobArray.begin();
            while (current != jobArray.end())
            {
                executor->mStats.jobsExecuted++;
                TaskResult::Result result=current->execute(executor->id(),InterruptPoint(&executor->mIsRunningExternal));
                if(result==TaskResult::Skipped)
                    executor->mStats.jobsSkipped++;
                else if (result==TaskResult::Success)
                    executor->mStats.jobsSucesfullyExecuted++;
                ++current;
            }
            executor->mStats.busyMilliseconds+=executor->mJobTimer.elapsedTimeMilliseconds();
        }
    }
    executor->mLog.msg("Thread executor %llu is terminating ...\n",executor->id().value);
}
Ejemplo n.º 3
0
int is_task_already_exist(TaskPtr t)
{
    TaskArray::iterator it = tasklist.begin();

    for(; it != tasklist.end(); ++it)
    {
        TaskPtr p = *it;

        if (t->id == p->id)
        {
            return 1;
        }
    }
    return 0;
}
Ejemplo n.º 4
0
int all_tasks_to_string( char *buffer )
{
    if (NULL == buffer)
    {
        LOG_STRING("Passing NULL to all_tasks_to_string!!");
        return -1;
    }

    if (tasklist.empty())
    {
        LOG_STRING("Tasklist is empty!!");
        return -2;
    }

    UString tmp = "";
    char buf[1024];
    TaskPtr p;
    int s = 0;
    TaskArray::iterator it = tasklist.begin();

    tmp += "<Tasks>";
    for(; it != tasklist.end(); ++it)
    {
        p= *it;

        s = (int)p->ts;

        sprintf(buf,
            "<task>"
            "<id>%d</id>"
            "<name>%s</name>"
            "<sid>%d</sid>"
            "<subdir>%s</subdir>"
            "<status>%s</status>"
            "</task>",
            p->id, p->name, p->sid, p->subdir, TaskStateText[s]);
        tmp += buf;
    }
    tmp += "</Tasks>";

    sprintf(buffer, "%s", tmp.c_str());

    return 0;
}
Ejemplo n.º 5
0
void cleanup_task()
{
    TaskPtr t;

    while(!qu.empty())
    {
        t=qu.front();
        qu.pop();
        delete t;
    }

    TaskArray::iterator it = qu_back.begin();

    for(; it != qu_back.end(); ++it)
    {
        t= *it;
        delete t;
    }
    qu_back.clear();

    tasklist.clear();
}