Subversion Repositories SmartDukaan

Rev

Rev 4796 | Rev 4971 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4796 Rev 4909
Line 1... Line 1...
1
from email.mime.text import MIMEText
1
from email.mime.text import MIMEText
2
from shop2020.clients.HelperClient import HelperClient
2
from shop2020.clients.HelperClient import HelperClient
3
from shop2020.thriftpy.utils.ttypes import Mail
3
from shop2020.thriftpy.utils.ttypes import Mail
-
 
4
from shop2020.utils.daemon import Daemon
-
 
5
 
4
import sched
6
import sched
5
import time
7
import time
6
import smtplib
8
import smtplib
7
import sys
9
import sys
-
 
10
import optparse
8
 
11
 
9
 
12
 
10
class EmailSender():
13
class EmailSender(Daemon):
-
 
14
    def __init__(self, logfile='/var/log/utils/emailsender/emailsender.log', pidfile='/var/run/email-sender.pid'):
11
    def __init__(self):
15
        Daemon.__init__(self, pidfile, stdout=logfile, stderr=logfile)
12
        print 'EmailSender initiated at', time.time()
16
        print 'EmailSender initiated at', time.time()
13
        self.email_schedular = sched.scheduler(time.time, time.sleep)
17
        self.email_schedular = sched.scheduler(time.time, time.sleep)
14
        self.time_to_sleep = 2
18
        self.time_to_sleep = 2
15
        self.authenticate()
19
        self.authenticate()
16
 
20
 
Line 88... Line 92...
88
                print e
92
                print e
89
                print 'Error occurred sending emails. Will retry.'
93
                print 'Error occurred sending emails. Will retry.'
90
            
94
            
91
        self.email_schedular.enter(self.time_to_sleep, 1, self.send, ())
95
        self.email_schedular.enter(self.time_to_sleep, 1, self.send, ())
92
 
96
 
93
    def start(self):
97
    def run(self):
94
        self.email_schedular.enter(self.time_to_sleep, 1, self.send, ())
98
        self.email_schedular.enter(self.time_to_sleep, 1, self.send, ())
95
        self.email_schedular.run()
99
        self.email_schedular.run()
96
 
100
 
97
EmailSender().start()
-
 
98
101
if __name__ == "__main__":
-
 
102
    parser = optparse.OptionParser()
-
 
103
    parser.add_option("-l", "--logfile", dest="logfile",
-
 
104
                      type="string",
-
 
105
                      help="Log all output to LOG_FILE",
-
 
106
                      )
-
 
107
    parser.add_option("-i", "--pidfile", dest="pidfile",
-
 
108
                      type="string",
-
 
109
                      help="Write the PID to pidfile")
-
 
110
    (options, args) = parser.parse_args()
-
 
111
    daemon = EmailSender(options.logfile, options.pidfile)
-
 
112
    if len(args) == 0:
-
 
113
        daemon.run()
-
 
114
    elif len(args) == 1:
-
 
115
        if 'start' == args[0]:
-
 
116
            daemon.start()
-
 
117
        elif 'stop' == args[0]:
-
 
118
            daemon.stop()
-
 
119
        elif 'restart' == args[0]:
-
 
120
            daemon.restart()
-
 
121
        else:
-
 
122
            print "Unknown command"
-
 
123
            sys.exit(2)
-
 
124
        sys.exit(0)
-
 
125
    else:
-
 
126
        print "usage: %s start|stop|restart" % sys.argv[0]
-
 
127
        sys.exit(2)
-
 
128