Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/erikvw/django-collect-offline-files
Modules for `django-offline` that provide file-based transport.
https://github.com/erikvw/django-collect-offline-files
Last synced: 8 days ago
JSON representation
Modules for `django-offline` that provide file-based transport.
- Host: GitHub
- URL: https://github.com/erikvw/django-collect-offline-files
- Owner: erikvw
- License: gpl-3.0
- Created: 2018-06-22T13:43:40.000Z (over 6 years ago)
- Default Branch: develop
- Last Pushed: 2020-03-06T20:59:37.000Z (almost 5 years ago)
- Last Synced: 2024-11-18T16:06:23.471Z (about 1 month ago)
- Language: Python
- Homepage:
- Size: 360 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
|pypi| |travis| |coverage|
django-collect-offline-files
----------------------------Transfer ``django_collect_offline`` transactions as files using SFTP over an SSH connection.
Data flows from client to server where a server is either a node server or the central server.
see also ``django_collect_offline``.
Usage
=====On the client:
.. code-block:: bash
python manage.py export_transactions
On the server or receiving host:
.. code-block:: bash
python manage.py incoming_observer
python manage.py deserialize_observer
**FileQueueObservers**
Two FileQueueObservers do the work using use ``watchdog`` observers; ``IncomingTransactionsFileQueueObserver`` and ``DeserializeTransactionsFileQueueObserver``. They are called using management commands:
.. code-block:: bash
python manage.py incoming_observer
and
.. code-block:: bashpython manage.py deserialize_observer
**IncomingTransactionsFileQueueObserver**The client exports data to JSON and sends to the server. Using ``TransactionExporter``, data is exported into a JSON file from ``django_collect_offline.models.OutgoingTransaction`` on the client and sent to the server using ``TransactionFileSender``.
Once a file is sent to the server, the ``IncomingTransactionsFileQueueObserver`` detects it and adds the filename to the queue (``IncomingTransactionsFileQueue``).
**DeserializeTransactionsFileQueue**
Processed files in the queue ``IncomingTransactionsFileQueue`` are moved to the pending folder watched by ``DeserializeTransactionsFileQueueObserver``.and added to the its queue, ``DeserializeTransactionsFileQueue``.
Processing queue items / filenames
==================================Each queue has a processor, (see ``process_queue``). The processor calls the ``next_task`` method for each item in the queue in FIFO order infinitely or until it gets a ``None`` item.
.. |pypi| image:: https://img.shields.io/pypi/v/django-collect-offline-files.svg
:target: https://pypi.python.org/pypi/django-collect-offline-files
.. |travis| image:: https://travis-ci.org/erikvw/django-collect-offline-files.svg?branch=develop
:target: https://travis-ci.org/erikvw/django-collect-offline-files
.. |coverage| image:: https://coveralls.io/repos/github/erikvw/django-collect-offline-files/badge.svg?branch=develop
:target: https://coveralls.io/github/erikvw/django-collect-offline-files?branch=develop