zoukankan      html  css  js  c++  java
  • erlang 中定时执行应用 ecron 使用

    • 获取:

    
       dev@debian:~/Work/ShankYan$ git clone git://github.com/esl/ecron.git
    
    • 编译:

    dev@debian:~/Work/ShankYan/ecron$ rebar com
    ==> ecron (compile)
    Dependency not available: meck-.* ({git,"git://github.com/esl/meck.git",
                                           "HEAD"})
    Dependency not available: edown-.* ({git,"git://github.com/esl/edown.git",
                                         "HEAD"})
    ERROR: compile failed while processing /home/dev/Work/ShankYan/ecron: rebar_abort
    

    解决(rebar get-deps com )或者在ecron下创建deps文件夹,然后进入deps文件夹,

     git clone git://github.com/esl/meck.git
      git clone git://github.com/esl/edown.git
     dev@debian:~/Work/ShankYan/ecron$ rebar com
     ok
    
    • 测试代码:

    在ecron.app文件中修改为

      {env, [
             {scheduled, [
                           {{{ '*', '*', '*'}, {14, 50, 0}}, {mytest, test, [2, 4]}},
                           {{{ '*', '*', '*'}, {14, 49, 0}}, {mytest, test, [2, 4]}},
                           {{{ '*', '*', '*'}, {14, 48, 0}}, {mytest, test, [2, 4]}},
                           {{{ '*', '*', '*'}, {14, 47, 0}}, {mytest, test, [2, 4]}},
                           {{{ '*', '*', '*'}, {14, 46, 0}}, {mytest, test, [2, 4]}},
                           {{{ '*', '*', '*'}, {14, 45, 0}}, {mytest, test, [2, 4]}},
                           {{{ '*', '*', '*'}, {14, 44, 0}}, {settlement_ecron, apply,  []}}
                           %{{{ '*', '*', '*'}, {16, 20, 0}}, {settlement_ecron, sys_init,   []}} 
                           % {{{ '*', '*', '*'}, {15, 40, 0}}, {settlement_ecron, migrate,  []}}
                           % {{{ '*', '*', '*'}, {15, 40, 0}}, {settlement_ecron, finalize,  []}}
                          ]},
             {event_handlers,[{ecron_event, []}]}]}
    

    在src中添加

    -module(mytest).
    -export([test/2]).
    test(X, Y)        ->
        io:format("I'm come for ecron test...~n"),
        {ok, X+Y}.
    <

    并重新编译

    • 运行 当然

    %% >mnesia:create_schema([node()]).
    %% >mnesia:start().
    %% >ecron:install().
    是上面说的用法
    handle收到消息的操作就是直接输出,结果如下所示:
       dev@debian:~/Work/ShankYan/ecron$ erl -pa ./ebin -name d@example4.com
       Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:2:2] [async-threads:10] [kernel-poll:false]
       Eshell V5.10.4  (abort with ^G)
       (d@example4.com)1> mnesia:start().
       ok
       (d@example4.com)2> ecron:install().
       ok
       (d@example4.com)3> application:start(ecron).
       ok
       (d@example4.com)4> I'm come for ecron test...
       ***Executed {{{' *','*','*'},{14,49,0}},{mytest,test,[2,4]}} at {{2014,9,3},{14,49,0}} expected at {{2014,9,3},{14,49,0}} Result = {ok, 6}
       (d@example4.com)4> I'm come for ecron test...
       ***Executed {{{'*','*','*'},{14,50,0}},{mytest,test,[2,4]}} at {{2014,9,3},{14,50,0}} expected at {{2014,9,3},{14,50,0}} Result = {ok, 6}
       (d@example4.com)4> 
       (d@example4.com)4> 
    
    • 最后

       
    ***Executed {{{'*','*','*'},{15,11,0}},{mytest,test,[2,4]}} at {{2014,9,3},{15,11,0}}
     expected at {{2014,9,3},{15,11,0}} Result = {ok, 6}
    
  • 相关阅读:
    Ubuntu中安装gdal python版本
    python中在计算机视觉中的库及基础用法
    Google earth爬取卫星影像数据并进行标注路网的方法
    事务
    文件的下载,随机验证码(无验证)登录注册
    类的加载器和反射
    等待唤醒机制,UDP通信和TCP通信
    线程池,多线程,线程异步,同步和死锁,Lock接口
    多线程, Thread类,Runnable接口
    转换流,缓冲流
  • 原文地址:https://www.cnblogs.com/ShankYan/p/4120025.html
Copyright © 2011-2022 走看看