zoukankan      html  css  js  c++  java
  • 【点滴积累,厚积薄发】windows schedule task中.exe程序的路径问题等问题总结

    1.在发布ReportMgmt的Job时遇到一个路径问题,代码如下:
    doc.Load(@"ConfigurationBusinessusiness.config");
     
    这种写法是相对路径,由于不同的帐户在运行.exe程序时,其工作目录(Working Directory)各不相同,cmd所在路径是c:WindowsSystem32\,因此它默认去这里找文件“c:WindowsSystem32ConfigurationBusinessusiness.config”,所以是错误的。
     
    正确的写法是:
    var bizConfigPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"ConfigurationBusinessusiness.config");
    doc.Load(bizConfigPath);
     
     
    2.我们的控制台程序,没有使用Console.ReadKey或Console.ReadLine阻塞,所以在发起异步写日志服务调用后,有可能就被结束了(因为Logger.LogAsync内部用了新的线程(TaskFactory),线程的从创建到运行还是有一定调度成本的,所以可能进程被关闭时,线程还没来得及被调用),导致写日志服务没有成功被调用。
     
    一种有效的写法是在调用时加Wait,等待它执行完成。
    catch (Exception err)
                {
                    Logger.LogAsync(new LogEntrySetting() 
                    {
                        CategoryName = "Job-CMS"
                        , SubCategoryName = "Report"
                        , Content = err.ToString()
                        , LogUserName = "DeilyDetailJob"
                    }).Wait();
                }
  • 相关阅读:
    Cuckoo for Hashing_双哈希表
    nyoj113_字符串替换
    nyoj366_D的小L_字典序_全排列
    二叉树的前序 中序 后序 遍历(递归/非递归)
    Java 学习路线
    leetcode 04 Median of Two Sorted Arrays
    ThreadLocal 的机制与内存泄漏
    try finally 执行顺序问题
    Java中的类加载器
    快速理解Java中的七种单例模式
  • 原文地址:https://www.cnblogs.com/fuhongwei041/p/5129909.html
Copyright © 2011-2022 走看看