如何让服务器每次检查一个站点?如何在服务器上运行脚本?

时间:2015-01-14 14:16:04

标签: android server

我正在构建一个Android应用程序,它将产品URL作为用户的输入,并检查产品的价格是否已经下降。当价格下降时,它会通过推送通知通知用户。

我有一些代码可以在亚马逊上获得产品的价格。但是,我不知道如何从现在开始。

度Acc。对我来说,服务器只会托管文件,因此可以在Internet上使用。我对吗?? 但我想要一台运行我的代码的服务器 - 它监视页面是否有任何变化。

如何从现在开始?

2 个答案:

答案 0 :(得分:0)

你需要为亚马逊答案写一个解析器。 Aand不时向服务器发送请求。

public class TimeService extends Service {
public static final long NOTIFY_INTERVAL = 5*60 * 1000; // 5 min
private Handler mHandler = new Handler();
private Timer mTimer = null;

@Override
    public IBinder onBind(Intent intent) {
        return null;
    }
@Override
    public void onCreate() {
        if(mTimer != null) {
            mTimer.cancel();
        } else {
            mTimer = new Timer();
        }
        mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 0, NOTIFY_INTERVAL);
    }
class TimeDisplayTimerTask extends TimerTask {
@Override
        public void run() {
            // run on another thread
            mHandler.post(new Runnable() {
@Override
                public void run() {
                    // call request to amazon server
}
});
        }

来自活动的电话

startService(new Intent(this, TimeService.class));
register in manifest

<application
.... >
.....

&lt; service android:name =“。TimeService”/&gt;

&LT; /应用程序&gt; }

答案 1 :(得分:0)

如果您想“监控亚马逊的价格”,那么您必须轮询(定期发送请求)到亚马逊。

你可以让应用程序完成所有工作(将代码放入检索亚马逊页面,解析它的价格等)但这会导致问题,如果/当页面发生变化,你想要改变轮询频率等等。具有以下优点:用户的设备可能不会被作为亚马逊的“机器人”切断。

您应该使用Web服务器本身在服务器上执行此操作以进行轮询,而不是应用程序。服务器需要支持添加要检查的项目,通知用户然后删除项目。这比听起来要复杂得多,亚马逊可能会关闭你的服务器,因为它本质上是一个“机器人” - 试图在没有“购物体验”的情况下获得定价信息。

有许多Web服务器支持在后台运行服务器进程来完成所有这些工作。您可以运行Tomcat(由Apache)运行或购买东西。如果您不熟悉Web服务器或PHP / JSP之类的东西,那么您还有很长的路要走......