Metadata-Version: 2.1
Name: aiga-django-amqp
Version: 0.0.1
Summary: Django app yang digunakan untuk mempermudah penggunaan rabbit mq
Home-page: https://github.com/ariksubagia/aiga-django-amqp
Author: I Putu Arik Subagia, S.kom
Author-email: ariksubagia@ymail.com
License: MIT
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 3.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=3.9
License-File: LICENSE

merupakan package khusus django untuk keperluan berkomunikasi dengan rabbitmq

Quick start
-----------

1. Tambahkan "aiga_amqp" ke INSTALLED_APPS pada file settings.py::

    INSTALLED_APPS = [
        ...
        'aiga_amqp',
    ]

A.1 Message Sender
------------------

Berikut contoh kode untuk mengirim message::

    from aiga_amqp.core import send_queue

    send_queue('nama channel', message='ini pesan')


A.2 Compete Consumer
--------------------

Berikut merupakan langkah untuk consume antrian message secara "compete" atau bergantian.

1. Pada folder app yang anda inginkan, tambahkan file ``consumer.py``
2. Pada file ``consumer.py`` buat function untuk menangani message seperti contoh dibawah ini::

    def consumer(channel, method, properties, body):
        print('saya telah baru saja melakukan sesuatu hal yang penting disini ...')

3. Pada file ``apps.py`` override method ``ready`` dan lakukan perintah seperti contoh berikut untuk mengeksekusi ``consumer.py``::

    from django.apps import AppConfig

    class ExampleConfig(AppConfig):
        default_auto_field = 'django.db.models.BigAutoField'
        name = 'example'

        def ready(self) -> None:
            from aiga_amqp.core import AMQPListener
            from .consumer import consumer
            listener = AMQPListener()
            listener.consume(consumer, channel_name='your channel name')

5. Jalankan django

B.1 Publish Message
-------------------

segera


B.2 Subscribe Message
---------------------

segera

Settings Variable
-----------------

Terdapat beberapa variable yang bisa digunakan pada ``settings.py`` beserta default value nya::

    AIGA_AMQP = {
        'HOST' : 'localhost',   //alamat host dari rabbitmq
        'PORT' : 5672,          //port dari rabbitmq
        'CREDENTIAL' : False,   //set menjadi True jika menggunakan USERNAME dan PASSWORD
        'USERNAME' : None,      //username untuk mengakses rabbitmq
        'PASSWORD' : None,      //password untuk mengakses rabbitmq
        'HEARTBEAT' : 600,
        'TIMEOUT' : 300
    }


