sendmail 별도의 프로세스로 분리하고 클라우드서버에서 실행함
This commit is contained in:
@@ -1,168 +0,0 @@
|
||||
/*
|
||||
* Backgroudn worker
|
||||
*/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Project
|
||||
{
|
||||
public partial class fMain
|
||||
{
|
||||
//DateTime redisTryTime = DateTime.Parse("1982-11-23");
|
||||
Boolean bBW = true;
|
||||
DateTime ChkMakeAutoTime = DateTime.Now.AddDays(-1);
|
||||
DateTime ChkSendMailTime = DateTime.Now.AddDays(-1);
|
||||
DateTime ChkMakeSchDayWeekTime = DateTime.Now.AddDays(-1);
|
||||
DateTime ChkMakeSchDay = DateTime.Now.AddDays(-1);
|
||||
DateTime ChkNoSchedule = DateTime.Now.AddDays(-1);
|
||||
DateTime ChkJobreportDay = DateTime.Now.AddDays(-1);
|
||||
DateTime ChkJObreportWeek = DateTime.Now.AddDays(-1);
|
||||
DateTime ChkTakeARest = DateTime.Now.AddDays(-1);
|
||||
|
||||
public string MailSort(string addr, string except)
|
||||
{
|
||||
if (string.IsNullOrEmpty(except)) return addr;
|
||||
var alist = addr.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
var elist = except.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
|
||||
foreach (var item in elist)
|
||||
alist.Remove(item);
|
||||
if (alist.Count < 1) return string.Empty;
|
||||
return string.Join(";", alist);
|
||||
}
|
||||
|
||||
string getdbdata(object tdata)
|
||||
{
|
||||
if (tdata == null) return string.Empty;
|
||||
return tdata.ToString();
|
||||
}
|
||||
string getMaillist(object orgo)
|
||||
{
|
||||
var org = string.Empty;
|
||||
if (orgo != null) org = orgo.ToString();
|
||||
org = org.Replace(";", ",").Replace(":", ",");
|
||||
string list_to = "";
|
||||
foreach (var item in org.Split(','))
|
||||
{
|
||||
if (item.Trim() != "")
|
||||
{
|
||||
var atindex = item.IndexOf("@");
|
||||
if (atindex != -1)
|
||||
{
|
||||
var dotindex = item.IndexOf(".", atindex + 1);
|
||||
if (dotindex != -1)
|
||||
{
|
||||
//정상이므로 추가한다.
|
||||
if (list_to != "") list_to += ",";
|
||||
list_to += item.Trim();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return list_to;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void bw_DoWork(object sender, DoWorkEventArgs e)
|
||||
{
|
||||
while (bBW)
|
||||
{
|
||||
ServerUtil.IsMailserver = ServerUtil.SendmailSet();
|
||||
if (ServerUtil.IsMailserver)
|
||||
{
|
||||
//메일대기내역전송
|
||||
var tsSendMail = DateTime.Now - ChkSendMailTime;
|
||||
if (tsSendMail.TotalMilliseconds > 1000)
|
||||
{
|
||||
try { SendMail(); }
|
||||
catch { }
|
||||
finally { ChkSendMailTime = DateTime.Now; }
|
||||
}
|
||||
|
||||
//자동생성 메일 작성
|
||||
var tsAutoMake = DateTime.Now - ChkMakeAutoTime;
|
||||
if (tsAutoMake.TotalMinutes >= 10)
|
||||
{
|
||||
try { MakeAutoMail(); }
|
||||
catch { }
|
||||
finally { ChkMakeAutoTime = DateTime.Now; }
|
||||
}
|
||||
|
||||
///스케쥴 기한 알림(주)
|
||||
var tsScheDayweek = DateTime.Now - ChkMakeSchDayWeekTime;
|
||||
if (tsScheDayweek.TotalMinutes > 30 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 10 && DateTime.Now.Hour <= 18)
|
||||
{
|
||||
|
||||
try { Mail_MakeScheduleDayWeek(); }
|
||||
catch { }
|
||||
finally { ChkMakeSchDayWeekTime = DateTime.Now; }
|
||||
}
|
||||
|
||||
///스케쥴 기한 알림(일)
|
||||
var tsScheDay = DateTime.Now - ChkMakeSchDay;
|
||||
if (tsScheDay.TotalMinutes > 30 && DateTime.Now.DayOfWeek != DayOfWeek.Saturday &&
|
||||
DateTime.Now.DayOfWeek != DayOfWeek.Sunday && DateTime.Now.Hour >= 10 && DateTime.Now.Hour <= 18)
|
||||
{
|
||||
|
||||
try { Mail_MakeScheduleDay(); }
|
||||
catch { }
|
||||
finally { ChkMakeSchDay = DateTime.Now; }
|
||||
}
|
||||
|
||||
///스케쥴없음
|
||||
var tsNoSchedule = DateTime.Now - ChkNoSchedule;
|
||||
if (tsNoSchedule.TotalMinutes > 30 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 10 && DateTime.Now.Hour <= 18)
|
||||
{
|
||||
|
||||
try { Mail_NoSchedule(); }
|
||||
catch { }
|
||||
finally { ChkNoSchedule = DateTime.Now; }
|
||||
}
|
||||
|
||||
///업무일지(주간)
|
||||
var tsjobweek = DateTime.Now - ChkJObreportWeek;
|
||||
if (tsjobweek.TotalMinutes > 30 && DateTime.Now.DayOfWeek == DayOfWeek.Monday && DateTime.Now.Hour >= 9 && DateTime.Now.Hour <= 18)
|
||||
{
|
||||
|
||||
try { Mail_JobReportWeek(); }
|
||||
catch { }
|
||||
finally { ChkJObreportWeek = DateTime.Now; }
|
||||
}
|
||||
|
||||
///업무일지(일)
|
||||
var tsjobday = DateTime.Now - ChkJobreportDay;
|
||||
if (tsjobday.TotalMinutes > 15 &&
|
||||
DateTime.Now.DayOfWeek != DayOfWeek.Saturday &&
|
||||
DateTime.Now.DayOfWeek != DayOfWeek.Sunday &&
|
||||
DateTime.Now.DayOfWeek != DayOfWeek.Monday &&
|
||||
DateTime.Now.Hour >= 9 && DateTime.Now.Hour <= 18)
|
||||
{
|
||||
|
||||
try { Mail_JobReportDay(); }
|
||||
catch { }
|
||||
finally { ChkJobreportDay = DateTime.Now; }
|
||||
}
|
||||
|
||||
///휴가신청(Remind) - 230611
|
||||
var tsTakeaRest = DateTime.Now - ChkTakeARest;
|
||||
if (tsTakeaRest.TotalMinutes > 15 &&
|
||||
DateTime.Now.DayOfWeek != DayOfWeek.Saturday &&
|
||||
DateTime.Now.DayOfWeek != DayOfWeek.Sunday &&
|
||||
DateTime.Now.Hour >= 17)
|
||||
{
|
||||
|
||||
try { Mail_Take_a_rest_remind(); }
|
||||
catch { }
|
||||
finally { ChkTakeARest = DateTime.Now; }
|
||||
}
|
||||
|
||||
System.Threading.Thread.Sleep(1000);
|
||||
}
|
||||
else System.Threading.Thread.Sleep(60000); //메일서비스사용안하므로 1분정도 지연한다
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -14,33 +14,10 @@ namespace Project
|
||||
{
|
||||
private void tmDisplay_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (bw.IsBusy)
|
||||
{
|
||||
if (sbBWRun.BackColor == Color.Lime)
|
||||
sbBWRun.BackColor = Color.LimeGreen;
|
||||
else
|
||||
sbBWRun.BackColor = Color.Lime;
|
||||
}
|
||||
else sbBWRun.BackColor = Color.Red;
|
||||
sbBCD.BackColor = Pub.barcode.IsInit ? Color.Lime : Color.Red;
|
||||
|
||||
|
||||
|
||||
sbBCD.BackColor = Pub.barcode.IsInit ? Color.Lime : Color.Red;
|
||||
toolStripStatusLabel1.BackColor = ServerUtil.IsMailserver ? Color.Lime : Color.Gray;
|
||||
|
||||
//if (server != null)
|
||||
//{
|
||||
// if (server.IsStarted) lbSvr.ForeColor = Color.Lime;
|
||||
// else lbSvr.ForeColor = Color.Magenta;
|
||||
//}
|
||||
//else lbSvr.ForeColor = Color.Red;
|
||||
//if (redisConnection == null) this.sbRedis.ForeColor = Color.DimGray;
|
||||
//else if (redisConnection.IsConnected)
|
||||
//{
|
||||
// if (db == null) this.sbRedis.ForeColor = Color.Blue;
|
||||
// else this.sbRedis.ForeColor = Color.Green;
|
||||
//}
|
||||
//else this.sbRedis.ForeColor = Color.Red;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user