Is there any way to use threading with django-signals?

I’m uploading some documents by using django signal over cloud . But its taking too much time to process . So i want this signal process to be handled by Threading so that users don’t have to wait much . I don’t know how can i use threading in django signals . Please help me out .

Thanks !

I have fixed my problem but i don’t know if it is right way or not . But working fine . Initially it was taking 30 sec but now its taking 2 sec .

My signal method is -

@receiver(post_save, sender=EmployeeDocument)
def employee_doc_upload(sender, instance, **kwargs):
    folder_name = '{0}_{1}'.format(instance.user.profile.aadhar, instance.user.profile.display_name.replace(" ", "_"))
    upload_url = '{0}/{1}/'.format(CLOUD_URL, folder_name)
    if instance.document:
        create_update_folder = "curl -u {0}:{1} -X MKCOL '{2}/{3}'".format(CLOUD_USERNAME,CLOUD_PASS,CLOUD_URL, folder_name)
        res = UploadThread(curl_folder_command=create_update_folder).start()

    if instance.document:
        curl_command = "curl -u {0}:{1} -T '{2}' '{3}'".format(CLOUD_USERNAME,CLOUD_PASS,instance.document.path,upload_url)
        uploaded = UploadThread(curl_upload_command=curl_command).start()

Then my UploadThread class -

class UploadThread(threading.Thread):
    """Threading to handle document upload"""
    def __init__(self,*args,**kwargs):
        self.curl_upload_command = kwargs.get('curl_upload_command',None)
        self.curl_folder_command = kwargs.get('curl_folder_command',None)
        #print(self.curl_folder_command)
        threading.Thread.__init__(self)

    def run(self):
        if self.curl_folder_command:
            os.system(self.curl_folder_command)
        if self.curl_upload_command:
            os.system(self.curl_upload_command)