public void AsyncPaper()
{
while (true)
{
try
{
var jsonText = RedisHelper.BlockPopItemFromList("async_write_paper_list"); Program.MyFrm.SetTextMessage("【试卷生成】发现一张试卷需要生成...");
var o = (JObject)JsonConvert.DeserializeObject(jsonText);
var paperId = o["paper_id"].ToString();
var version = int.Parse(o["version"].ToString());
var paperType = o["paper_type"].ToString();
var juanType = o["juan_type"].ToString();
var guid = o["guid"].ToString();
var paperName = o["paper_name"].ToString();
//要生成的文件位置
var currentdate = DateTime.Now.ToString("yyyyMMdd");
var ext = version == ? "docx" : "doc"; //生成试卷
var savedocpath = GeneratePaper(paperId, paperType, juanType, version); var forUrlencoderUrl = "";
var forIsoUrl = "";
if (GlobalVar.Version == "")
{
var uploadkey = "down/Paper/" + currentdate + "/" + guid + "." + ext;
//上传到云存储中去
var targetbucket = GlobalVar.WorkingBucket;
OssUtil.SimpleUpload(savedocpath, targetbucket, uploadkey);
OssUtil.GetOssFileUrl(targetbucket, uploadkey, paperName + "." + ext, out forUrlencoderUrl,out forIsoUrl);
}
else
{
var di = new DirectoryInfo(GlobalVar.LocalPath + "Paper\\" + currentdate );
if (!di.Exists)
{
di.Create();
} var uploadkey =di.FullName + "\\" + guid + "." + ext;
var fi = new FileInfo(savedocpath);
string command = @"copy "+ savedocpath +" "+uploadkey;
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
p.Start();
p.StandardInput.WriteLine(command);
p.StandardInput.WriteLine("exit");
p.Close(); //回写缓存JuDuanPaperDownPrex
var Url = "/dsideal_yy/html/down/Paper/" + currentdate + "/" + guid + "." + ext + "?flag=download&n=" + paperName + "." + ext;
var bytes = Encoding.UTF8.GetBytes(Url);
forIsoUrl = Convert.ToBase64String(bytes);
RedisHelper.Hash_Set("paper_down_" + guid, "forIsoUrl", forIsoUrl); Url = "/dsideal_yy/html/down/Paper/" + currentdate + "/" + guid + "." + ext + "?flag=download&n=" + HttpUtility.UrlEncode(paperName, Encoding.UTF8).ToUpper() + "." + ext;
bytes = Encoding.UTF8.GetBytes(Url);
forUrlencoderUrl = Convert.ToBase64String(bytes);
}
RedisHelper.Hash_Set("paper_down_" + guid, "forUrlencoderUrl", forUrlencoderUrl);
RedisHelper.Hash_Set("paper_down_" + guid, "forIsoUrl", forIsoUrl);
Program.MyFrm.SetTextMessage("【试卷生成】成功生成一张试卷!");
}
catch (Exception err)
{
Program.MyFrm.SetTextMessage("【试卷生成】错误原因:" + err);
}
}
}

武汉天喻的NFS 磁盘问题的更多相关文章

  1. 关于nfs共享目录的使用技巧

    nfs客户端的使用 1.查看nfs服务器信息挂载信息 1)在客户端,要查看nfs服务器上有哪些共享目录 # showmount -e nfs服务器ip 在客户端,要查看nfs服务器上有哪些客户端的目录 ...

  2. 如何利用Direct NFS克隆数据库

    CloneDB是Oracle 11.2.0.3推出的一项新特性,它利用的了11g新引入的Direct NFS.它直接利用目标数据库的备份,无需将备份COPY到克隆环境下,使得一个备份可以克隆多个不同用 ...

  3. linux的mount(挂载)NFS 共享,命令详解

    Linux下挂载(mount)光盘镜像文件.移动硬盘.U盘.Windows和NFS网络共享 linux是一个优秀的开放源码的操作系统,可以运行在大到巨型小到掌上型各类计算机系统上,随着 linux系统 ...

  4. NFS无法启动解决方式

    今天一台挂载nfs磁盘的服务器出现异常,数据不能写入,执行 df -h 卡住不动. 登录nfs server查看发现nfs为启动. [root@server10-13 web]# exportfs [ ...

  5. zabbix日常监控NFS(新加一)

    有时候主机使用NFS文件挂载的方式来存储.备份.共享文件:但有时会出现断开的现象. 1.客户机现状 [root@tianxia6 ~]# df -h Filesystem Size Used Avai ...

  6. linux下如何挂接(mount)光盘镜像文件、移动硬盘、U盘、Windows网络共享和NFS网络共享

    首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的.      命令格式:      mount [-t vfstype] [-o options ...

  7. nfs挂载无法卸载

    故障现象:今天发现服务器的upload负载很高,到18左右,同时df查看磁盘命令卡住 用top\vmstat\iostat查看并未发现可以服务或进程. 上网查发现可能是nfs问题. 卸载nfs挂载的方 ...

  8. LINUX挂接UNIX系统NFS文件共享

    类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),下面我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍 ...

  9. linux的mount(挂载)命令详解

    本文介绍mount命令的用法,以及技巧光盘镜像文件.移动硬盘及U盘的方法. 挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用 ...

随机推荐

  1. libmt.so: undefined reference to `av_find_stream_info@LIBAVFORMAT_53'

    [root@localhost instance]# make gcc -O3 -g -I/usr/include/ -I/usr/include/glib- -fexceptions -fstack ...

  2. luogu2221 [HAOI2012]高速公路

    和sdoi的相关分析很像qwq,推柿子然后线段树搞搞 #include <iostream> #include <cstdio> using namespace std; ty ...

  3. oracle 用户被锁定解锁方法

    修改了用户密码,第二天过来发现用户被锁定,晚上走的时候还好好的 . alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED; alter ...

  4. 利用NSAttributedString实现图文混排

    UILabel 和 UITextView 都能添加 NSAttributedString 属性字符串,通过这一点,可以实现带有属性的文字和文字内包含图片的文本内容展示. 效果如下:   1-初始化可变 ...

  5. Object Pascal中文手册 经典教程

    Object Pascal 参考手册 (Ver 0.1)ezdelphi@hotmail.com OverviewOverview(概述)Using object pascal(使用 object p ...

  6. Android Canvas类介绍

    当我们调整好画笔之后,现在需要绘制到画布上,这就得用Canvas类了.在Android中既然把Canvas当做画布,那么就可以在画布上绘制我们想要的任何东西.除了在画布上绘制之外,还需要设置一些关于画 ...

  7. android ViewGroup getChildDrawingOrder与 isChildrenDrawingOrderEnabled()

    getChildDrawingOrder与 isChildrenDrawingOrderEnabled()是属于ViewGroup的方法.   getChildDrawingOrder 用于 返回当前 ...

  8. Learn the shell

    learn the shell what is the shell? when we speak of the command line,we are really to the shell.Actu ...

  9. poj1273 网络流入门题 dinic算法解决,可作模板使用

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 62078   Accepted: 2384 ...

  10. springmvc项目搭建三-添加前端框架

    这几年前端框架发展可以说非常迅猛了...实际项目中也用到了几个,easyui相对来讲,算是我第一个接触的前端框架了,用的时候感觉很方便,省了很多代码量,一个好的前端框架可以为你省去很多精力在前端布局上 ...