| author | Raphael Velt <raph.velt@gmail.com> |
| Fri, 07 Jun 2013 11:55:46 +0200 | |
| changeset 919 | e126d3e1e186 |
| parent 528 | script/stream/recorder_tweetstream.py@7fb5a7b0d35c |
| parent 893 | script/stream/recorder_tweetstream.py@10a19dd4e1c9 |
| child 1074 | 94d3d8f5eb9d |
| permissions | -rw-r--r-- |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
1 |
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer |
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
2 |
from iri_tweet import models, utils |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
3 |
from iri_tweet.models import TweetSource, TweetLog, ProcessEvent |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
4 |
from iri_tweet.processor import get_processor |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
5 |
from multiprocessing import Queue as mQueue, Process, Event |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
6 |
from sqlalchemy.exc import OperationalError |
|
289
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
7 |
from sqlalchemy.orm import scoped_session |
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
8 |
import Queue |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
9 |
import StringIO |
|
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
10 |
import anyjson |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
11 |
import argparse |
|
199
514e0ee0c68a
add a duration. not quitewhat expected but that will do
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
82
diff
changeset
|
12 |
import datetime |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
13 |
import inspect |
|
883
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
14 |
import iri_tweet.stream |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
15 |
import logging |
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
16 |
import os |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
17 |
import re |
|
884
07f1c6854df9
update virtualenv creation
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
883
diff
changeset
|
18 |
import requests_oauthlib |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
19 |
import shutil |
|
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
20 |
import signal |
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
21 |
import socket |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
22 |
import sqlalchemy.schema |
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
23 |
import sys |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
24 |
import thread |
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
25 |
import threading |
|
206
6d642d650470
Improve tweet recorder log info
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
199
diff
changeset
|
26 |
import time |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
27 |
import traceback |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
28 |
import urllib2 |
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
29 |
socket._fileobject.default_bufsize = 0 |
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
30 |
|
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
31 |
|
|
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
32 |
|
|
883
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
33 |
# columns_tweet = [u'favorited', u'truncated', u'text', u'created_at', u'source', u'in_reply_to_status_id', u'in_reply_to_screen_name', u'in_reply_to_user_id', u'geo', u'id', u'user'] |
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
34 |
columns_tweet = [u'user', u'favorited', u'contributors', u'truncated', u'text', u'created_at', u'retweeted', u'in_reply_to_status_id_str', u'coordinates', u'in_reply_to_user_id_str', u'entities', u'in_reply_to_status_id', u'place', u'in_reply_to_user_id', u'id', u'in_reply_to_screen_name', u'retweet_count', u'geo', u'id_str', u'source'] |
|
883
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
35 |
# columns_user = [u'id', u'verified', u'profile_sidebar_fill_color', u'profile_text_color', u'followers_count', u'protected', u'location', u'profile_background_color', u'utc_offset', u'statuses_count', u'description', u'friends_count', u'profile_link_color', u'profile_image_url', u'notifications', u'geo_enabled', u'profile_background_image_url', u'screen_name', u'profile_background_tile', u'favourites_count', u'name', u'url', u'created_at', u'time_zone', u'profile_sidebar_border_color', u'following'] |
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
36 |
columns_user = [u'follow_request_sent', u'profile_use_background_image', u'id', u'verified', u'profile_sidebar_fill_color', u'profile_text_color', u'followers_count', u'protected', u'location', u'profile_background_color', u'id_str', u'utc_offset', u'statuses_count', u'description', u'friends_count', u'profile_link_color', u'profile_image_url', u'notifications', u'show_all_inline_media', u'geo_enabled', u'profile_background_image_url', u'name', u'lang', u'following', u'profile_background_tile', u'favourites_count', u'screen_name', u'url', u'created_at', u'contributors_enabled', u'time_zone', u'profile_sidebar_border_color', u'is_translator', u'listed_count'] |
|
883
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
37 |
# just put it in a sqlite3 tqble |
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
38 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
39 |
DEFAULT_TIMEOUT = 3 |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
40 |
|
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
41 |
class Requesthandler(BaseHTTPRequestHandler): |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
42 |
|
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
43 |
def __init__(self, request, client_address, server): |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
44 |
BaseHTTPRequestHandler.__init__(self, request, client_address, server) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
45 |
|
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
46 |
def do_GET(self): |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
47 |
self.send_response(200) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
48 |
self.end_headers() |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
49 |
|
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
50 |
def log_message(self, format, *args): # @ReservedAssignment |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
51 |
pass |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
52 |
|
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
53 |
|
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
54 |
def set_logging(options): |
|
272
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
55 |
loggers = [] |
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
56 |
|
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
57 |
loggers.append(utils.set_logging(options, logging.getLogger('iri.tweet'))) |
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
58 |
loggers.append(utils.set_logging(options, logging.getLogger('multiprocessing'))) |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
59 |
if options.debug >= 2: |
|
272
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
60 |
loggers.append(utils.set_logging(options, logging.getLogger('sqlalchemy.engine'))) |
|
883
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
61 |
# utils.set_logging(options, logging.getLogger('sqlalchemy.dialects')) |
|
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
62 |
# utils.set_logging(options, logging.getLogger('sqlalchemy.pool')) |
|
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
63 |
# utils.set_logging(options, logging.getLogger('sqlalchemy.orm')) |
|
272
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
64 |
return loggers |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
65 |
|
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
66 |
def set_logging_process(options, queue): |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
67 |
qlogger = utils.set_logging(options, logging.getLogger('iri.tweet.p'), queue) |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
68 |
qlogger.propagate = 0 |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
69 |
return qlogger |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
70 |
|
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
71 |
def get_auth(options, access_token): |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
72 |
consumer_key = options.consumer_key |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
73 |
consumer_secret = options.consumer_secret |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
74 |
auth = requests_oauthlib.OAuth1(client_key=consumer_key, client_secret=consumer_secret, resource_owner_key=access_token[0], resource_owner_secret=access_token[1], signature_type='auth_header') |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
75 |
return auth |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
76 |
|
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
77 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
78 |
def add_process_event(event_type, args, session_maker): |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
79 |
session = session_maker() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
80 |
try: |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
81 |
evt = ProcessEvent(args=None if args is None else anyjson.serialize(args), type=event_type) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
82 |
session.add(evt) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
83 |
session.commit() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
84 |
finally: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
85 |
session.close() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
86 |
|
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
87 |
|
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
88 |
class BaseProcess(Process): |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
89 |
|
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
90 |
def __init__(self, session_maker, queue, options, access_token, stop_event, logger_queue, parent_pid): |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
91 |
self.parent_pid = parent_pid |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
92 |
self.session_maker = session_maker |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
93 |
self.queue = queue |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
94 |
self.options = options |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
95 |
self.logger_queue = logger_queue |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
96 |
self.stop_event = stop_event |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
97 |
self.consumer_token = (options.consumer_key, options.consumer_secret) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
98 |
self.access_token = access_token |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
99 |
|
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
100 |
super(BaseProcess, self).__init__() |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
101 |
|
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
102 |
# |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
103 |
# from http://stackoverflow.com/questions/2542610/python-daemon-doesnt-kill-its-kids |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
104 |
# |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
105 |
def parent_is_alive(self): |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
106 |
try: |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
107 |
# try to call Parent |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
108 |
os.kill(self.parent_pid, 0) |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
109 |
except OSError: |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
110 |
# *beeep* oh no! The phone's disconnected! |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
111 |
return False |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
112 |
else: |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
113 |
# *ring* Hi mom! |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
114 |
return True |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
115 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
116 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
117 |
def __get_process_event_args(self): |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
118 |
return {'name':self.name, 'pid':self.pid, 'parent_pid':self.parent_pid, 'options':self.options.__dict__, 'access_token':self.access_token} |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
119 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
120 |
def run(self): |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
121 |
try: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
122 |
add_process_event("start_worker", self.__get_process_event_args(), self.session_maker) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
123 |
self.do_run() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
124 |
finally: |
|
289
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
125 |
add_process_event("stop_worker", self.__get_process_event_args(), self.session_maker) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
126 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
127 |
def do_run(self): |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
128 |
raise NotImplementedError() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
129 |
|
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
130 |
|
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
131 |
|
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
132 |
class SourceProcess(BaseProcess): |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
133 |
|
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
134 |
def __init__(self, session_maker, queue, options, access_token, stop_event, logger_queue, parent_pid): |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
135 |
self.track = options.track |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
136 |
self.token_filename = options.token_filename |
|
528
7fb5a7b0d35c
remove reconnecting stream and propagate options
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
464
diff
changeset
|
137 |
self.timeout = options.timeout |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
138 |
self.stream = None |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
139 |
super(SourceProcess, self).__init__(session_maker, queue, options, access_token, stop_event, logger_queue, parent_pid) |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
140 |
|
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
141 |
def __source_stream_iter(self): |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
142 |
|
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
143 |
self.logger.debug("SourceProcess : run ") |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
144 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
145 |
self.logger.debug("SourceProcess : get_auth auth with option %s and token %s " %(self.options, self.access_token)) |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
146 |
self.auth = get_auth(self.options, self.access_token) |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
147 |
self.logger.debug("SourceProcess : auth set ") |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
148 |
|
|
883
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
149 |
track_list = self.track # or raw_input('Keywords to track (comma seperated): ').strip() |
|
528
7fb5a7b0d35c
remove reconnecting stream and propagate options
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
464
diff
changeset
|
150 |
self.logger.debug("SourceProcess : track list " + track_list) |
|
7fb5a7b0d35c
remove reconnecting stream and propagate options
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
464
diff
changeset
|
151 |
|
|
7fb5a7b0d35c
remove reconnecting stream and propagate options
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
464
diff
changeset
|
152 |
track_list = [k.strip() for k in track_list.split(',')] |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
153 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
154 |
self.logger.debug("SourceProcess : before connecting to stream %s, url : %s, auth : %s" % (repr(track_list), self.options.url, repr(self.auth))) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
155 |
self.stream = iri_tweet.stream.FilterStream(self.auth, track=track_list, raw=True, url=self.options.url, timeout=self.timeout, chunk_size=512, logger=self.logger) |
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
156 |
self.logger.debug("SourceProcess : after connecting to stream") |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
157 |
self.stream.muststop = lambda: self.stop_event.is_set() |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
158 |
|
|
883
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
159 |
stream_wrapper = iri_tweet.stream.SafeStreamWrapper(self.stream, logger=self.logger) |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
160 |
|
|
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
161 |
session = self.session_maker() |
|
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
162 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
163 |
#import pydevd |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
164 |
#pydevd.settrace(suspend=False) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
165 |
|
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
166 |
|
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
167 |
try: |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
168 |
for tweet in stream_wrapper: |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
169 |
if not self.parent_is_alive(): |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
170 |
self.stop_event.set() |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
171 |
sys.exit() |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
172 |
self.logger.debug("SourceProcess : tweet " + repr(tweet)) |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
173 |
source = TweetSource(original_json=tweet) |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
174 |
self.logger.debug("SourceProcess : source created") |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
175 |
add_retries = 0 |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
176 |
while add_retries < 10: |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
177 |
try: |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
178 |
add_retries += 1 |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
179 |
session.add(source) |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
180 |
session.flush() |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
181 |
break |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
182 |
except OperationalError as e: |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
183 |
session.rollback() |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
184 |
self.logger.debug("SourceProcess : Operational Error %s nb %d" % (repr(e), add_retries)) |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
185 |
if add_retries == 10: |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
186 |
raise |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
187 |
|
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
188 |
source_id = source.id |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
189 |
self.logger.debug("SourceProcess : before queue + source id " + repr(source_id)) |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
190 |
self.logger.info("SourceProcess : Tweet count: %d - current rate : %.2f - running : %s" % (self.stream.count, self.stream.rate, int(time.time() - self.stream.starttime))) |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
191 |
session.commit() |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
192 |
self.queue.put((source_id, tweet), False) |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
193 |
|
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
194 |
except Exception as e: |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
195 |
self.logger.error("SourceProcess : Error when processing tweet " + repr(e)) |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
196 |
raise |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
197 |
finally: |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
198 |
session.rollback() |
|
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
199 |
session.close() |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
200 |
self.stream.close() |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
201 |
self.stream = None |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
202 |
if not self.stop_event.is_set(): |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
203 |
self.stop_event.set() |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
204 |
|
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
205 |
|
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
206 |
def do_run(self): |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
207 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
208 |
self.logger = set_logging_process(self.options, self.logger_queue) |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
209 |
|
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
210 |
source_stream_iter_thread = threading.Thread(target=self.__source_stream_iter , name="SourceStreamIterThread") |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
211 |
|
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
212 |
source_stream_iter_thread.start() |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
213 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
214 |
try: |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
215 |
while not self.stop_event.is_set(): |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
216 |
self.logger.debug("SourceProcess : In while after start") |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
217 |
self.stop_event.wait(DEFAULT_TIMEOUT) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
218 |
except KeyboardInterrupt: |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
219 |
self.stop_event.set() |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
220 |
pass |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
221 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
222 |
if self.stop_event.is_set() and self.stream: |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
223 |
self.stream.close() |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
224 |
elif not self.stop_event.is_set() and not source_stream_iter_thread.is_alive: |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
225 |
self.stop_event.set() |
|
890
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
226 |
|
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
227 |
self.queue.cancel_join_thread() |
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
228 |
self.logger_queue.cancel_join_thread() |
|
738
2497c7f38e0a
correct. remove mutex and clear
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
737
diff
changeset
|
229 |
self.logger.info("SourceProcess : join") |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
230 |
source_stream_iter_thread.join(30) |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
231 |
|
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
232 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
233 |
def process_tweet(tweet, source_id, session, consumer_token, access_token, twitter_query_user, token_filename, logger): |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
234 |
try: |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
235 |
if not tweet.strip(): |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
236 |
return |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
237 |
tweet_obj = anyjson.deserialize(tweet) |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
238 |
processor_klass = get_processor(tweet_obj) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
239 |
if not processor_klass: |
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
240 |
tweet_log = TweetLog(tweet_source_id=source_id, status=TweetLog.TWEET_STATUS['NOT_TWEET']) |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
241 |
session.add(tweet_log) |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
242 |
return |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
243 |
processor = processor_klass(json_dict=tweet_obj, |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
244 |
json_txt=tweet, |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
245 |
source_id=source_id, |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
246 |
session=session, |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
247 |
consumer_token=consumer_token, |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
248 |
access_token=access_token, |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
249 |
token_filename=token_filename, |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
250 |
user_query_twitter=twitter_query_user, |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
251 |
logger=logger) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
252 |
logger.info(processor.log_info()) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
253 |
logger.debug(u"Process_tweet :" + repr(tweet)) |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
254 |
processor.process() |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
255 |
|
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
256 |
except ValueError as e: |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
257 |
message = u"Value Error %s processing tweet %s" % (repr(e), tweet) |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
258 |
output = StringIO.StringIO() |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
259 |
try: |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
260 |
traceback.print_exc(file=output) |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
261 |
error_stack = output.getvalue() |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
262 |
finally: |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
263 |
output.close() |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
264 |
tweet_log = TweetLog(tweet_source_id=source_id, status=TweetLog.TWEET_STATUS['NOT_TWEET'], error=message, error_stack=error_stack) |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
265 |
session.add(tweet_log) |
|
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
266 |
session.commit() |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
267 |
except Exception as e: |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
268 |
message = u"Error %s processing tweet %s" % (repr(e), tweet) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
269 |
logger.exception(message) |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
270 |
output = StringIO.StringIO() |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
271 |
try: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
272 |
traceback.print_exc(file=output) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
273 |
error_stack = output.getvalue() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
274 |
finally: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
275 |
output.close() |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
276 |
session.rollback() |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
277 |
tweet_log = TweetLog(tweet_source_id=source_id, status=TweetLog.TWEET_STATUS['ERROR'], error=message, error_stack=error_stack) |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
278 |
session.add(tweet_log) |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
279 |
session.commit() |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
280 |
|
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
281 |
|
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
282 |
|
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
283 |
class TweetProcess(BaseProcess): |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
284 |
|
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
285 |
def __init__(self, session_maker, queue, options, access_token, stop_event, logger_queue, parent_pid): |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
286 |
super(TweetProcess, self).__init__(session_maker, queue, options, access_token, stop_event, logger_queue, parent_pid) |
|
464
b9243ade95e2
code cleaning and reorganisation for scripts
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
425
diff
changeset
|
287 |
self.twitter_query_user = options.twitter_query_user |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
288 |
|
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
289 |
|
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
290 |
def do_run(self): |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
291 |
|
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
292 |
self.logger = set_logging_process(self.options, self.logger_queue) |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
293 |
session = self.session_maker() |
|
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
294 |
try: |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
295 |
while not self.stop_event.is_set() and self.parent_is_alive(): |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
296 |
try: |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
297 |
source_id, tweet_txt = self.queue.get(True, 3) |
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
298 |
self.logger.debug("Processing source id " + repr(source_id)) |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
299 |
except Exception as e: |
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
300 |
self.logger.debug('Process tweet exception in loop : ' + repr(e)) |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
301 |
continue |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
302 |
process_tweet(tweet_txt, source_id, session, self.consumer_token, self.access_token, self.twitter_query_user, self.options.token_filename, self.logger) |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
303 |
session.commit() |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
304 |
except KeyboardInterrupt: |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
305 |
self.stop_event.set() |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
306 |
finally: |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
307 |
session.rollback() |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
308 |
session.close() |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
309 |
|
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
310 |
|
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
311 |
def get_sessionmaker(conn_str): |
|
289
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
312 |
engine, metadata, Session = models.setup_database(conn_str, echo=False, create_all=False, autocommit=False) |
|
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
313 |
Session = scoped_session(Session) |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
314 |
return Session, engine, metadata |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
315 |
|
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
316 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
317 |
def process_leftovers(session, consumer_token, access_token, twitter_query_user, token_filename, ask_process_leftovers, logger): |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
318 |
|
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
319 |
sources = session.query(TweetSource).outerjoin(TweetLog).filter(TweetLog.id == None) |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
320 |
sources_count = sources.count() |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
321 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
322 |
if sources_count > 10 and ask_process_leftovers: |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
323 |
resp = raw_input("Do you want to process leftovers (Y/n) ? (%d tweet to process)" % sources_count) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
324 |
if resp and resp.strip().lower() == "n": |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
325 |
return |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
326 |
logger.info("Process leftovers, %d tweets to process" % (sources_count)) |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
327 |
for src in sources: |
|
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
328 |
tweet_txt = src.original_json |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
329 |
process_tweet(tweet_txt, src.id, session, consumer_token, access_token, twitter_query_user, token_filename, logger) |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
330 |
session.commit() |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
331 |
|
|
15
5d552b6a0e55
add oauth authentication to tweetstream
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
11
diff
changeset
|
332 |
|
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
333 |
def process_log(logger_queues, stop_event): |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
334 |
while not stop_event.is_set(): |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
335 |
for lqueue in logger_queues: |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
336 |
try: |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
337 |
record = lqueue.get_nowait() |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
338 |
logging.getLogger(record.name).handle(record) |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
339 |
except Queue.Empty: |
|
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
340 |
continue |
|
256
2f335337ff64
Do not stop on IOErrors
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
255
diff
changeset
|
341 |
except IOError: |
|
2f335337ff64
Do not stop on IOErrors
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
255
diff
changeset
|
342 |
continue |
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
343 |
time.sleep(0.1) |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
344 |
|
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
345 |
|
|
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
346 |
def get_options(): |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
347 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
348 |
usage = "usage: %(prog)s [options]" |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
349 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
350 |
parser = argparse.ArgumentParser(usage=usage) |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
351 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
352 |
parser.add_argument("-f", "--file", dest="conn_str", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
353 |
help="write tweet to DATABASE. This is a connection string", metavar="CONNECTION_STR", default="enmi2010_twitter.db") |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
354 |
parser.add_argument("-T", "--track", dest="track", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
355 |
help="Twitter track", metavar="TRACK") |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
356 |
parser.add_argument("-k", "--key", dest="consumer_key", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
357 |
help="Twitter consumer key", metavar="CONSUMER_KEY", required=True) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
358 |
parser.add_argument("-s", "--secret", dest="consumer_secret", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
359 |
help="Twitter consumer secret", metavar="CONSUMER_SECRET", required=True) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
360 |
parser.add_argument("-n", "--new", dest="new", action="store_true", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
361 |
help="new database", default=False) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
362 |
parser.add_argument("-D", "--daemon", dest="daemon", action="store_true", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
363 |
help="launch daemon", default=False) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
364 |
parser.add_argument("-t", dest="token_filename", metavar="TOKEN_FILENAME", default=".oauth_token", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
365 |
help="Token file name") |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
366 |
parser.add_argument("-d", "--duration", dest="duration", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
367 |
help="Duration of recording in seconds", metavar="DURATION", default= -1, type=int) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
368 |
parser.add_argument("-N", "--nb-process", dest="process_nb", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
369 |
help="number of process.\nIf 0, only the lefovers of the database are processed.\nIf 1, no postprocessing is done on the tweets.", metavar="PROCESS_NB", default=2, type=int) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
370 |
parser.add_argument("--url", dest="url", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
371 |
help="The twitter url to connect to.", metavar="URL", default=iri_tweet.stream.FilterStream.url) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
372 |
parser.add_argument("--query-user", dest="twitter_query_user", action="store_true", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
373 |
help="Query twitter for users", default=False) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
374 |
parser.add_argument("--timeout", dest="timeout", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
375 |
help="timeout for connecting in seconds", default=60, metavar="TIMEOUT", type=int) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
376 |
parser.add_argument("--ask-process-leftovers", dest="ask_process_leftovers", action="store_false", |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
377 |
help="ask process leftover", default=True) |
|
290
2ddd11ec2da2
- twitter is https only now
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
289
diff
changeset
|
378 |
|
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
379 |
|
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
380 |
utils.set_logging_options(parser) |
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
381 |
|
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
382 |
return parser.parse_args() |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
383 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
384 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
385 |
def do_run(options, session_maker): |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
386 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
387 |
stop_args = {} |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
388 |
|
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
389 |
consumer_token = (options.consumer_key, options.consumer_secret) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
390 |
access_token = utils.get_oauth_token(consumer_key=consumer_token[0], consumer_secret=consumer_token[1], token_file_path=options.token_filename) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
391 |
|
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
392 |
|
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
393 |
session = session_maker() |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
394 |
try: |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
395 |
process_leftovers(session, consumer_token, access_token, options.twitter_query_user, options.token_filename, options.ask_process_leftovers, utils.get_logger()) |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
396 |
session.commit() |
|
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
397 |
finally: |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
398 |
session.rollback() |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
399 |
session.close() |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
400 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
401 |
if options.process_nb <= 0: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
402 |
utils.get_logger().debug("Leftovers processed. Exiting.") |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
403 |
return None |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
404 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
405 |
queue = mQueue() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
406 |
stop_event = Event() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
407 |
|
|
883
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
408 |
# workaround for bug on using urllib2 and multiprocessing |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
409 |
httpd = HTTPServer(('127.0.0.1',0), Requesthandler) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
410 |
thread.start_new_thread(httpd.handle_request, ()) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
411 |
|
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
412 |
req = urllib2.Request('http://localhost:%d' % httpd.server_port) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
413 |
conn = None |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
414 |
try: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
415 |
conn = urllib2.urlopen(req) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
416 |
except: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
417 |
utils.get_logger().debug("could not open localhost") |
|
883
8ae3d91ea4ae
after update to requests 1.0.2, do some cleaning: remove tweetstream and tweepy
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
739
diff
changeset
|
418 |
# donothing |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
419 |
finally: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
420 |
if conn is not None: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
421 |
conn.close() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
422 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
423 |
process_engines = [] |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
424 |
logger_queues = [] |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
425 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
426 |
SessionProcess, engine_process, _ = get_sessionmaker(conn_str) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
427 |
process_engines.append(engine_process) |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
428 |
lqueue = mQueue(50) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
429 |
logger_queues.append(lqueue) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
430 |
pid = os.getpid() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
431 |
sprocess = SourceProcess(SessionProcess, queue, options, access_token, stop_event, lqueue, pid) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
432 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
433 |
tweet_processes = [] |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
434 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
435 |
for i in range(options.process_nb - 1): |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
436 |
SessionProcess, engine_process, _ = get_sessionmaker(conn_str) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
437 |
process_engines.append(engine_process) |
|
693
2ef837069108
Starting 'listener_update' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
528
diff
changeset
|
438 |
lqueue = mQueue(50) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
439 |
logger_queues.append(lqueue) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
440 |
cprocess = TweetProcess(SessionProcess, queue, options, access_token, stop_event, lqueue, pid) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
441 |
tweet_processes.append(cprocess) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
442 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
443 |
log_thread = threading.Thread(target=process_log, name="loggingThread", args=(logger_queues, stop_event,)) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
444 |
log_thread.daemon = True |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
445 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
446 |
log_thread.start() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
447 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
448 |
sprocess.start() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
449 |
for cprocess in tweet_processes: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
450 |
cprocess.start() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
451 |
|
|
289
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
452 |
add_process_event("pid", {'main':os.getpid(), 'source':(sprocess.name, sprocess.pid), 'consumers':dict([(p.name, p.pid) for p in tweet_processes])}, session_maker) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
453 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
454 |
if options.duration >= 0: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
455 |
end_ts = datetime.datetime.utcnow() + datetime.timedelta(seconds=options.duration) |
|
739
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
456 |
|
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
457 |
def interupt_handler(signum, frame): |
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
458 |
utils.get_logger().debug("shutdown asked " + repr(signum) + " " + repr(inspect.getframeinfo(frame, 9))) |
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
459 |
stop_args.update({'message': 'interupt', 'signum':signum, 'frameinfo':inspect.getframeinfo(frame, 9)}) |
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
460 |
stop_event.set() |
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
461 |
|
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
462 |
signal.signal(signal.SIGINT , interupt_handler) |
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
463 |
signal.signal(signal.SIGHUP , interupt_handler) |
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
464 |
signal.signal(signal.SIGALRM, interupt_handler) |
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
465 |
signal.signal(signal.SIGTERM, interupt_handler) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
466 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
467 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
468 |
while not stop_event.is_set(): |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
469 |
if options.duration >= 0 and datetime.datetime.utcnow() >= end_ts: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
470 |
stop_args.update({'message': 'duration', 'duration' : options.duration, 'end_ts' : end_ts}) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
471 |
stop_event.set() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
472 |
break |
|
739
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
473 |
if sprocess.is_alive(): |
|
350ffcb7ae4d
correct listener.
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
738
diff
changeset
|
474 |
utils.get_logger().debug("Source process alive") |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
475 |
time.sleep(1) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
476 |
else: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
477 |
stop_args.update({'message': 'Source process killed'}) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
478 |
stop_event.set() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
479 |
break |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
480 |
utils.get_logger().debug("Joining Source Process") |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
481 |
try: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
482 |
sprocess.join(10) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
483 |
except: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
484 |
utils.get_logger().debug("Pb joining Source Process - terminating") |
|
890
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
485 |
finally: |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
486 |
sprocess.terminate() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
487 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
488 |
for i, cprocess in enumerate(tweet_processes): |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
489 |
utils.get_logger().debug("Joining consumer process Nb %d" % (i + 1)) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
490 |
try: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
491 |
cprocess.join(3) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
492 |
except: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
493 |
utils.get_logger().debug("Pb joining consumer process Nb %d - terminating" % (i + 1)) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
494 |
cprocess.terminate() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
495 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
496 |
|
|
890
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
497 |
utils.get_logger().debug("Close queues") |
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
498 |
try: |
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
499 |
queue.close() |
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
500 |
for lqueue in logger_queues: |
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
501 |
lqueue.close() |
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
502 |
except Exception as e: |
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
503 |
utils.get_logger().error("error when closing queues %s", repr(e)) |
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
504 |
# do nothing |
|
9c57883dbb9d
Correct stopping process
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
888
diff
changeset
|
505 |
|
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
506 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
507 |
if options.process_nb > 1: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
508 |
utils.get_logger().debug("Processing leftovers") |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
509 |
session = session_maker() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
510 |
try: |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
511 |
process_leftovers(session, consumer_token, access_token, options.twitter_query_user, options.token_filename, options.ask_process_leftovers, utils.get_logger()) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
512 |
session.commit() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
513 |
finally: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
514 |
session.rollback() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
515 |
session.close() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
516 |
|
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
517 |
for pengine in process_engines: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
518 |
pengine.dispose() |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
519 |
|
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
520 |
return stop_args |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
521 |
|
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
522 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
523 |
def main(options): |
|
11
54d7f1486ac4
implement get_oauth_token
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
9
diff
changeset
|
524 |
|
|
272
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
525 |
global conn_str |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
526 |
|
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
527 |
conn_str = options.conn_str.strip() |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
528 |
if not re.match("^\w+://.+", conn_str): |
|
255
500cd0405c7a
improve multi processing architecture
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
254
diff
changeset
|
529 |
conn_str = 'sqlite:///' + options.conn_str |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
530 |
|
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
531 |
if conn_str.startswith("sqlite") and options.new: |
|
261
d84c4aa2a9eb
add process event for start and shutdown
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
260
diff
changeset
|
532 |
filepath = conn_str[conn_str.find(":///") + 4:] |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
533 |
if os.path.exists(filepath): |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
534 |
i = 1 |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
535 |
basename, extension = os.path.splitext(filepath) |
|
243
9213a63fa34a
- debug multithread (still database lock problem)
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
242
diff
changeset
|
536 |
new_path = '%s.%d%s' % (basename, i, extension) |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
537 |
while i < 1000000 and os.path.exists(new_path): |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
538 |
i += 1 |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
539 |
new_path = '%s.%d%s' % (basename, i, extension) |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
540 |
if i >= 1000000: |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
541 |
raise Exception("Unable to find new filename for " + filepath) |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
542 |
else: |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
543 |
shutil.move(filepath, new_path) |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
544 |
|
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
545 |
Session, engine, metadata = get_sessionmaker(conn_str) |
|
9
bb44692e09ee
script apres traitement enmi
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff
changeset
|
546 |
|
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
547 |
if options.new: |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
548 |
check_metadata = sqlalchemy.schema.MetaData(bind=engine) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
549 |
check_metadata.reflect() |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
550 |
if len(check_metadata.sorted_tables) > 0: |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
551 |
message = "Database %s not empty exiting" % conn_str |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
552 |
utils.get_logger().error(message) |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
553 |
sys.exit(message) |
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
554 |
|
|
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
555 |
metadata.create_all(engine) |
|
289
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
556 |
session = Session() |
|
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
557 |
try: |
|
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
558 |
models.add_model_version(session) |
|
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
559 |
finally: |
|
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
560 |
session.close() |
|
a5eff8f2b81d
improve session maker creation + models version + add model version in db
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
272
diff
changeset
|
561 |
|
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
562 |
stop_args = {} |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
563 |
try: |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
564 |
add_process_event(event_type="start", args={'options':options.__dict__, 'args': [], 'command_line': sys.argv}, session_maker=Session) |
|
263
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
565 |
stop_args = do_run(options, Session) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
566 |
except Exception as e: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
567 |
utils.get_logger().exception("Error in main thread") |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
568 |
outfile = StringIO.StringIO() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
569 |
try: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
570 |
traceback.print_exc(file=outfile) |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
571 |
stop_args = {'error': repr(e), 'message': getattr(e, 'message', ''), 'stacktrace':outfile.getvalue()} |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
572 |
finally: |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
573 |
outfile.close() |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
574 |
raise |
|
6671e9a4c9c5
correct model ans improve event tracking
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
261
diff
changeset
|
575 |
finally: |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
576 |
add_process_event(event_type="shutdown", args=stop_args, session_maker=Session) |
|
242
cdd7d3c0549c
Starting 'parallel_twitter' branch
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
207
diff
changeset
|
577 |
|
|
425
b346fd32fc34
prepare for publication, add sync info
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
290
diff
changeset
|
578 |
utils.get_logger().debug("Done. Exiting. " + repr(stop_args)) |
|
272
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
579 |
|
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
580 |
|
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
581 |
|
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
582 |
if __name__ == '__main__': |
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
583 |
|
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
584 |
options = get_options() |
|
272
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
585 |
|
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
586 |
loggers = set_logging(options) |
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
587 |
|
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
588 |
utils.get_logger().debug("OPTIONS : " + repr(options)) |
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
589 |
|
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
590 |
if options.daemon: |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
591 |
options.ask_process_leftovers = False |
|
272
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
592 |
import daemon |
|
254
2209e66bb50b
multiple debugging and corrections
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
243
diff
changeset
|
593 |
|
|
272
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
594 |
hdlr_preserve = [] |
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
595 |
for logger in loggers: |
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
596 |
hdlr_preserve.extend([h.stream for h in logger.handlers]) |
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
597 |
|
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
598 |
context = daemon.DaemonContext(working_directory=os.getcwd(), files_preserve=hdlr_preserve) |
|
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
599 |
with context: |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
600 |
main(options) |
|
272
fe2efe3600ea
add daemon option
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
263
diff
changeset
|
601 |
else: |
|
888
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
602 |
main(options) |
|
6fc6637d8403
update listener. add support for twitter regulation messages. update virtualenv
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
886
diff
changeset
|
603 |