如何通知我的服务器应用程序?

时间:2016-03-31 15:39:50

标签: ubuntu amazon-s3 push-notification synchronization activemq

我定期向bucket Amazon S3上的ActiveMQ发送一些文件。但是,我需要通知我的服务器我的存储桶已更新,因此他们可以下载新文件。

我想实施推送方法,或类似的方法。 我考虑建立topics环境,与shell合作。然而,我不知道它是否真的有必要,也许我对这个问题反应过度,你们可能会有一个更简单的解决方案。

[编辑]

我一直在努力用#!/bin/bash set -x CLIENTID=$(hostname -f) MOM_ADDRESS="mom.company.solutions" DESTINATION="Company.Product.Sync" TYPE="topic" USER="admin" PASSWORD="admin" # USER="user" # PASSWORD="user" produce(){ curl -u "${USER}":"${PASSWORD}" -d "body=${MESSAGE}" "http://${MOM_ADDRESS}:8161/api/message/${DESTINATION}?type=${TYPE}" } consume(){ while [ true ]; do wget --user "${USER}" --password "${PASSWORD}" "http://${MOM_ADDRESS}:8161/api/message/${DESTINATION}?type=${TYPE}&clientId=${CLIENTID}" sleep 5 done } case "${1}" in produce) MESSAGE="${2}" produce ;; consume) consume ;; *) echo "Usage: jasper {produce|consume}" exit 1 ;; esac 做一些非常简单的事情,到目前为止我得到了这个:

./queue produce './sync download'
./queue consume

用法:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct{
    int test;
} meta_t;

int main() {

    char *start_mem = malloc(10);

    meta_t meta;
    meta.test = 123;

    memcpy(start_mem, &meta, sizeof(meta));

    printf("Saved: %d\n", ((meta_t *)(start_mem))->test);

    return 0;
}

1 个答案:

答案 0 :(得分:1)

只需启用S3事件通知:http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

您可以将它们转到SNS主题,SQS队列或Lambda函数。