<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def worker(url_key, property_name, function, function_arguments):
 """ This function usually runs as process on the background. It runs ``function(*function_arguments)`` and then stores them in REST API storage. Warning: This function puts data into DB, isntead of returning them. Args: url_key (str):
 Key which will be used for database lookup. property_name (str):
 Name of the property used to store data. function (obj):
 Function used to load the data. function_arguments (list):
 List of parameters for function which will be called to retreive data. error_log_path (str):
 If set, log errors into this file, otherwise stderr. """

    # this may take some time, hence outside transaction manager
    error_msg = None
    try:
        data = function(*function_arguments)
    except Exception as e:
        data = []
        error_msg = "Error: " + traceback.format_exc().strip()
        error_msg += "\n" + str(e.message)

    # handle logging of possible error message
    if error_msg:
        logger.error(error_msg)
        error_msg = None

    func_name = str(function.__name__)
    logger.info(
        "Attempting to save output from `%s`." % func_name
    )

    # save `data` into RequestInfo object property
    return _save_to_database(
        url=url_key,
        property_name=property_name,
        data=data
    )