zoukankan      html  css  js  c++  java
  • paper3—Algorithm2-Engine-Trigger-on-SMD—temp

    //source code: /run/media/root/E6B2798BB279614B/.../PAPER/paper-3/twin-engine-trigger-code/server-client-pthread-c
    ----------------------------------------------------------------------------------

    Description: guest access FCD by using SMD, there are two parts: browser on SMD and daemon written in c language

    //browser on SMD:
    guest access server on FCD by using browser on SMD;
    socket();  //use WebSocket
    connect(); //connect to daemon on SMD
    send username to daemon WAIT on the same SMD;
    executing tasks in brower; // take some time
    if finish tasks then
      send finish=1 to daemon WAIT on the same SMD;
    end if

    //---------------------------------------------------------

    //daemon WAIT on SMD that waiting data sent by brower
    PROCEDURE: WAIT
    socket();
    bind();
    recvfrom();
    if receive username from browser then
      write username to pipe;
    end if
    if receive finish=1 from browser then
      write finish=1 to pipe; // send to daemon MAIN
    end if
    END PROCEDURE

    //daemon MAIN on SMD
    PROCEDURE: MAIN
    socket();
    connect(); //connect to TCP Socket on FCD;
    //fcdtime: time of sending heartbeat to FCD last;
    fcdtime = currenttime;
    pthread_create(WAIT); //daemon WAIT on SMD

    while true do
      read from pipe; //receive from daemon WAIT
      if read username from pipe then
        send heartbeat to FCD;
        send username, processid to FCD;
        if receive heartbeat from FCD then
          SMD receive current process information from FCD;
          update correlative tables in database;
        end if
        period = currenttime - fcdtime;
     
        if period < 5 then  //connectiong to FCD is normal
          fcdtime = currenttime;
        else if period > 30 then //server shutdown or connectiong to FCD is abnormal
          trigger SMD;
          redirect to localhost and invoke task in SMD
          while true do
            send heartbeat to FCD; //probe whether FCD is active
            if receive heartbeat from FCD then
              read from pipe; //receive from daemon WAIT
              if finish=1 then
                send finish to FCD;
                send information for current process to FCD;
                exit;
              else
                stop accessing MPE;
                send information for current process to FCD;
                sleep 3s; //waiting for FCD to update it's database
                trigger FCD;
                redirect to FCD and invoke task in FCD;
              end if
            end if
            sleep 60s;
          done //end while
        end if
      else if read finish=1 from pipe
        send finish to FCD;
        send information for current process to FCD;
        exit;
      end if
      sleep 5s; //send heartbeat request every 5s to FPE
    done
    END PROCEDURE

  • 相关阅读:
    JQuery.Gantt(甘特图)开发
    文件上传利器SWFUpload入门简易教程
    ES6:JavaScript 新特性
    记一次关于垃圾回收app的推广成功案例
    c#游戏之路-wpf版本开发
    C#游戏之路-winform,wpf,directx,opengl的了解
    Python3 引号
    while循环练习
    用jquery实现瀑布流(方式1-固定宽度和列数,按顺序添加图片)
    jquery实现图片轮播淡入淡出效果
  • 原文地址:https://www.cnblogs.com/ztguang/p/12649320.html
Copyright © 2011-2022 走看看