PHP Running an hourly script

2019-09-01 01:45发布

Im making a web game. It runs relatively in real time. Buildings produce a certain amount of money each hour. The amount of money varies from player to player based on what they own.

I need to make a php script that calculates how much money to add and then insert it into the DB every hour, this would have to be ran for every player.

Whats the best way to do this?

Thanks!

标签: php
4条回答
我欲成王,谁敢阻挡
2楼-- · 2019-09-01 02:17

The best way to do this I think is to store the last time the user was logged in and calculate the money earned when the user logs in for the next time. You can animate that via JS, if you want to (let a timer increase the money every hour, so that it correlates with the amount calculated by php).

If you really need the hourly update, google "cron job". Try "free cron job" to find free providers...

查看更多
Lonely孤独者°
3楼-- · 2019-09-01 02:23

The problem with using a cron job for something like this, is that it starts taking longer to calculate everyone's money once there's enough players to make the game interesting. The key is to find ways to break the calculation up.

One thing you can do is add a "last_calculation" timestamp to each user, and only do the calculation when something happens where you need to know an individuals money. When a player loads a page that displays how much money they have, or when someone gives them money, are two examples of actions where you would want to do the calculation.

Once you determine what these actions are in your case, you can have these actions check that timestamp, perform the calculation, and update that timestamp before doing whatever they were going to do in the first place.

Doing something like this, rather than using a cron job will let your application scale better. Rather than having a massive load spike every hour when this stuff needs to be calculated, every player might simply have a fraction of a second added to their request every once in awhile.

查看更多
该账号已被封号
4楼-- · 2019-09-01 02:29

Probably setting up a cron job on the server, if your host allows it.

查看更多
Viruses.
5楼-- · 2019-09-01 02:32

You are looking for cron job, see:

What is a cronjob and how do I use it?

查看更多
登录 后发表回答