dnn 后台服务网络同步策略

背景:还是两台服务器的同步问题。以前我们使用了坚果云同步,这一次我们用网络策略解决。

整个流程:

  1. 用户上传图片至 aliyun 的 input 文件夹【格式:13位时间戳+media_id】,自定义风格图片传至 input_user 文件夹;风格图片传至 style 文件夹【格式:13时间戳】
  2. 将 aliyun 的 input 文件同步到 dnn 的 input,同时将原图片 mv 到temp 文件夹【避免同文件夹的新文件判断】;同步 input_user,切至 temp;同步 style,不移动【根据 input_user 图片的前13位时间戳可以推出风格图访问路径】
  3. dnn 服务器拿到 dnn 的 input 图片处理,同时切至 dnn 的 temp,移动策略同 aliyun;输出图片到 ouput【格式:原来的基础上加“O”前缀】;
  4. dnn 服务器将 dnn 的 output 图片同步至 aliyun 的 output 文件夹,同时将原图片 mv 到 copy 文件夹【避免同文件夹的新文件判断】;
  5. aliyun 将 output 的图片通过文件名与 MySQL 记录找到图片用户发送推送,同时将原图片切至 copy 文件夹。

线程:

根据以上流程,我们规划为以下线程

  1. 微信服务相关,包括数据库支持,token jssdk校验请求...
    由阿里云服务器的 php + MySQL + nginx 环境支持;
  2. 阿里云 input 同步至 dnn服务器 input
    dnn 服务器部署 python RESTful API:
    nohup python app_get_id.py > app_get_id.out 2>&1 &
    阿里云脚本每30s扫描 input 文件夹,将图片名发往 dnn 接口:
    nohup python check_input.py > check_input.out 2>&1 &
    阿里云脚本每30s扫描 input_user 文件夹,将图片名发往 dnn 接口:
    nohup python check_input_user.py > check_input_user.out 2>&1 &
    dnn 接口获取图片名称后拼出 url 下载图片,实现阿里云 input 同步 dnn input,input_user、style同理;
  3. dnn 服务器的深度学习程序:
    nohup ./supervise.sh &
  4. dnn output 同步至 阿里云 output
    阿里云部署 python RESTful API:
    nohup python app_get_upload.py > app_get_upload.out 2>&1 &
    dnn 每30s扫描 output 文件夹,将图片上传至阿里云 API 接口:
    nohup python check_output.py > check_output.out 2>&1 &
  5. 阿里云服务器设置 crontab 任务扫描 output,发送微信推送
    -> crontab -e
    -> * * * * * sleep 15; /usr/bin/php -f /home/webwe/www/piconline/mubanxiaoxi.php >> /home/webwe/www/piconline/mubanxiaoxi.txt

比较:

以上可以看出,整个服务由多个接口任务组成,频繁扫描文件夹,有点多看起来很繁琐。

另一种方案:环环相扣回调,比如用户上传完图片后通过回调启动 input 同步。dnn 完成图片加工后通过回调启动 output 同步,同步后再回调启动推送。一气呵成。

这种方案最大的缺点是逻辑过度耦合,各种服务嵌在一起,一旦某一环节挂掉,整个服务流程需要排除,十分困难。

将整个服务拆成多个任务后,各任务相互独立互不干涉,input 同步进程只管同步 input 的事情,其他一概不管。进程挂掉的时候只需在自身小范围解决,其他的 output 照样同步,dnn 照样跑图片。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,707评论 0 10
  • 转载:https://help.aliyun.com/knowledge_detail/5974693.html?...
    meng_philip123阅读 1,667评论 1 12
  • 不知道你有没有经历过,分手之后,还是忍不住要翻前任的微信微博和qq空间。 虽然每次都在内心挣扎着,叫自己别再手贱,...
    bf328d795906阅读 4,142评论 3 1
  • 墨已入水 渡一池青花 揽五分红霞 采竹回家 悠悠风来 埋一地桑麻 一身袈裟 把相思放下 十里桃花 待嫁的年华 凤冠...
    山言良语lynn阅读 422评论 1 2