예제 #1
0
    def __init__(self) -> None:
        super().__init__()
        self._initialize_directories()
        self._initialize_database()
        self.logger = log_manager.get_logger('file_manager')

        self.scheduler_running = False
예제 #2
0
    def __init__(self) -> None:
        super().__init__()
        self.file_manager = FileManager()
        self.scheduled_deliveries_hour = None
        self.handler_running = False
        self.scheduler_running = False

        self.logger = log_manager.get_logger('session_manager')
    def __init__(self) -> None:
        super().__init__()

        # Configure logging
        log_manager.setup_logging()
        self.logger = log_manager.get_logger('session_manager')

        # Initialize session variables
        self.logger.info(utils.whos_calling('Fetching Firefox session...'))
        self.previous_session = self._fetch_previous_session()
        self.active_browser_connection = False
        self.active_phone_connection = False
        self.cookies = {}
        self.driver = None

        # Try reuse previous persisted session
        if 'session' in self.previous_session:
            self.session = self.previous_session['session']
            self.session_id = self.session['session_id']
            self.executor_url = self.session['executor_url']

            self.logger.info('Fetching driver session with ID: %s' %
                             self.session_id)
            self.driver = SessionManager.get_existing_driver_session()
        else:
            self._create_new_driver_session()
        self.logger.debug('Using session with ID: %s' % self.driver.session_id)
        """
        Try load webpage - if this fails, then session is invalid
        * If previous session exists, reuse session
        * If previous session does not exist, create a new session
        """
        self.logger.info('Starting WhatsApp web')
        try:
            self.driver.get('https://web.whatsapp.com/')
            self.monitor_connection()
            # self._load_cookies()
            # self.driver.get('https://web.whatsapp.com/')
        except (WebDriverException, SessionNotCreatedException,
                ConnectionRefusedError, URLError, NewConnectionError,
                MaxRetryError):
            self.logger.exception('Connection refused', exc_info=False)
            self._create_new_driver_session()
            self.monitor_connection()
        finally:
            uptime_manager.process_up(self)

        # Start API & service monitoring
        self.start_api()
예제 #4
0
    }

    apm = ElasticAPM(app)

    handler = LoggingHandler(client=apm.client)
    handler.setLevel(logging.WARN)
    app.logger.addHandler(handler)

# Example usage:
# app.logger.error('Failed to send: Invalid number',
#                  exc_info=True,
#                  extra={
#                      'uid': uid
#                  })

logger = log_manager.get_logger('api_manager')


@app.route("/ping")
def ping():
    return 'healthy', 200


@app.route("/health")
def health_check():
    if not check_auth():
        return 'unauthorized', 400
    else:
        pass

    logger.info('Handling /health request')
예제 #5
0
from celery import group
from celery.exceptions import SoftTimeLimitExceeded
from celery.exceptions import MaxRetriesExceededError

from elasticapm import Client

from task_queue.celery_config import *

client = Client({
    'SERVICE_NAME': os.environ['ELASTIC_APM_SERVICE_NAME'],
    'SERVER_URL': os.environ['ELASTIC_APM_SERVER_URL']
})

file_manager = FileManager()
alert_manager = AlertManager()
logger = log_manager.get_logger('session_manager')


def purge_tasks():
    """
    Clear all tasks from queues
    :returns number of tasks purged
    """
    return app.control.purge()


def task_in_queue(check_id, queue_id):
    """
    Inspect queue to check for ID: reserved, active, or scheduled
    :returns true if task in queue
    """