2011-06-02 80 views
2

我对拍卖网站有疑问。我不是在问整个过程,因为我知道在这里无法回答。我只需要解释汽车招标如何在拍卖网站中工作

解释Autobids预订铅: -

如果用户给出了高,投标的价格与投标该范围内放置的大量低价值。即使系统处于休眠状态,系统也应该自动放置出价。

例如: -

High (Bid from) : 10 
Low (Bid To) : 20 
Number of bids : 5 

让我们看看目前的拍卖价格为$ 11。然后机器是活动的,所以它应该放在与随机生成的时间间隔竞标。

我在jQuery中做了这些。但它应该工作,即使它休眠。

这种技术在许多现场拍卖网站已被使用像

如果你登录,那么你可以看到机器在拍卖详情页面。 如果您有任何以前的经验,请分享。克伦的工作是否有意义?

我的表结构被提及here

这是用什么技术?我怎样才能做到这一点?

+2

为什么我对此问题得到否定的投票? – Gowri 2011-06-04 13:03:07

回答

9

如果这是你自己的网站,那么我当对某件物品进行任何出价时,只需检查相同物品上的其他自动出价,并应用任何相关循环,直到处理完所有自动出价为止。

+1

有关更新过程而不是循环的问题。 – Gowri 2011-06-04 03:47:52

+2

@gowri:@Jane是正确的。 – 2011-06-05 01:08:52

+0

如果用户在拍卖中出价,我很抱歉。我们可以检查机器是否可用。如果是,那么我们可以从机器投标。我需要以几秒钟的时间间隔从机器投标。在这种情况下,我认为这是不可能的,我有解释。这很欢迎 – Gowri 2011-06-08 06:09:29

1

如果客户机处于关闭状态,那么该进程显然在服务器上运行。

您是否试图将此功能添加到您自己的拍卖网站上,或试图在别人的拍卖网站上创建自动出价?

如果是前者,那么你可以每分钟开一个cron工作来查看要做出什么投标。或者你可以有一个数据库触发器,看看是否有人出价过高,并代表他们进行新的(预先安排的)出价。

如果这是别人的拍卖网站,您的机器必须通电以提出其服务器的请求。

(或者,这可能仅仅是垃圾链接的列出的两个网站...)

希望有所帮助。

+1

这是为我自己的网站,每分钟的cron工作没有任何意义。因为拍卖是每秒钟。 – Gowri 2011-06-03 03:38:22

+0

好点。然后调用后台进程。可以是单独的进程,也可以是系统其他部分的线程。 一定要监视它没有死亡(或者,对于单独的进程,将其放入重启循环中)。 祝你好运。 – 2011-06-08 21:34:29

+0

+1对于后台进程评论 – skajfes 2011-06-08 22:21:31

0

对于汽车竞标将有一个字段在数据库。 如果它被设置为自动竞价,我们将设置在服务器中的cron作业运行,这将在一定的时间内运行,并检查自动竞标标志和更新出价

+0

是的我同意,但我听到cron只是从分钟而不是以秒为单位。拍卖与几秒钟不相关。所以如何更新(投标)投标表。 – Gowri 2011-06-04 03:44:30

+0

如何结束出价?当任何用户登录并看到拍卖时,您将检查拍卖结束日期。如果它结束,他们不能出价。如果它少了,他们可以出价。那时你会检查是否有其他的自动出价。如果是更新。 – zod 2011-06-04 12:16:52

+0

我需要在实时投标。 – Gowri 2011-06-04 13:11:17

3

处理自动出价应该是一个服务器端流程,服务器获取您的高出价和低出价的价值以及您愿意制作的出价数量并将其保存到数据库中。这确保了当你可以去别的地方时,冲浪到另一页,你的愿望仍然会被执行。

现在,你应该说这应该作为第二个,通过第二个过程来完成,但真正在服务器端,状态每秒不会改变。只有当有人进行更改时才会改变状态(即,新的出价被放置。)一旦新的出价被放置,它将检查当前出价的价格是否在自动出价范围内并且遵循下面的过程。

在服务器端,服务器将收集当前拍卖的所有自动出价。当前出价的价格将被检查以查看它是否在任何自动出价的范围内,并且将列出该范围内的所有自动出价。从这里开始,它会处理自动出价,直到价格不再处于任何自动出价范围内。

0

我的建议是当他们检索html页面时为每个客户制定出价。 例如 当我到达您的拍卖网站时,您的服务器说有一个用户自下午3点起每5秒钟自动出价,如果上限和下限在范围内且低于出价金额,并且现在是4:下午33点,然后根据自下午3点以来的时间计算当前出价。

现在,我将收到的html将在我的浏览器上每秒更新一次,以显示当前出价,并且每5秒为前面提到的用户进行自动出价。 一旦我对某件物品出价,服务器将检索该物品的当前出价,并将我作为当前出价者返还,如果我的出价最高,或者其他出价高于出价者,则返回给我。

这将使它看起来好像它们都是实时发生的。

0

我可能是密集在这里,但不是它只是

  • 新的出价
  • 最高低(BRR)胜(例如:高/低/步= 10/20/5),让称之为
  • 得到下一个最高的低(例如高/低/步骤= 11/17/6)让我们称之为过b
  • 设置新价格A(Lo) - ((A(Lo) - A(Hi))/A(Step)) * FLOOR((A(Lo) - B(Lo))/((A(Lo) - A(Hi))/A(Step)))
  • 步骤 '宽度' == ((A(Lo) - A(Hi))/A(Step)) = (20-10)/5 = 2
  • 澄清:目标是A(Lo) - stepwidth * FLOOR((difference between A & B)/stepwidth)
  • 20 - 2 * FLOOR((20-17) /2) =>20 - 2 * FLOOR(3/2) = 20 -2 * 1 = 18对于A

抑或投标已经要 '发挥出'? (或错过了任何行动/投标在我的生活(固定价格或谈判一路)我错过了一些社会教育)?

3

首先,您需要一个cron工作来结束拍卖并计算结果。这是无法避免的。

关于autobidding,可以简单地在用户下标时运行,不需要cron。 您的脚本会这样做:

  1. 获取当前用户的最大autobid。 (发布表单的用户)
  2. 在同一脚本中立即运行竞争对手。这是合乎逻辑的,因为他已经超过了其他竞争对手,所以你只会与 竞争。
  3. 获得具有较大最高出价的用户(两者之一)。
  4. 将他作为当前的竞争对手并投标“竞争对手的最高出价”+“最低出价增量”
  5. 发送消息(例如电子邮件)以了解双方发生的事情。

没有必要在这里任何cronjobs的,一切都发生瞬间

另外,如果你需要显示现场投标,你需要抓取当前highbidders在短期内,比如10秒或分钟的AJAX脚本。

+0

+1在自动出价过程中没有cronjob的解决方案。 – 2011-06-09 23:18:05

+0

你是对的,比如“你赢了!”电子邮件等。你需要一个cronjob或类似的东西。但是,这可以每1,5,15分钟完成一次。这不能在第二个基础上完成。 竞价和拍卖结束本身可能非常关键。对于拍卖结束第二基础的cronjob甚至还不够。拍卖结束后有人竞标时,人们会反驳,而当它“仅”出现时,竞争结束。 – 2011-06-10 13:17:50

+0

好的拍卖结束,如果你限制时间的结局是每10分钟一个简单的cron工作就足够了。然而,如果时间过去但动作没有完成,我会在拍卖细节显示给访客时触发它来复制结束程序。这将在cron作业通过此操作之前强制更新,访问者将看到更新的信息。否则,如果访问者在第5分钟看到该页面,则会显示不一致的信息:出价结束,但没有官方赢家。 – venimus 2011-06-10 13:35:31

1

我不会使用cronjob或类似的。

原理很容易概括: 使用new bidnew created auto-bid作为触发器 - 没有cronjobs或类似的。领导者是具有最高限制的人。目前的价格是2nd highest limit + bid-step

考虑在做当前领先的出价之前,从第二位最高的用户开始loosing bid。因此,对于用户来说,为什么领导者的自动出价达到了这个高度更加透明。

当两个auto-bid具有相同的最高值时,您必须考虑一些特殊情况,但这会使我的答案成为一段文字。而这些情况很容易处理。 (即采取与最早的自动竞价创建日期作为领导者的用户。)

这里一些原因,一个cronjob是一个非常糟糕的主意(在我看来):

  • 它是慢,因为它的工作原理间隔。上面的解决方案适用于需要时立即触发的触发器。
  • 它消耗的资源超过必需量。上面的解决方案适用于触发器,当且仅当必须完成时触发。 Cronjob解决方案一次又一次地运行自动出价,而不需要耗费CPU时间,大多数时间生产磁盘I/O等。
  • Cronjob解决方案有性能竞争条件。作业必须完成,直到下一个作业间隔开始。如果间隔为1秒,则每次更新过程必须在一秒钟内完成,否则它们会重叠。或者你必须同步这...

而且你也不需要一个cronjob结束拍卖。拍卖会在特定的日期/时间结束,并且在过去拍卖结束。进一步的出价不被接受。这里也不需要cronjob。

+0

是的,我同意cron对此很不好,但是我触发时遇到了问题,比如当前价格:10美元,最后一个出价:1如果用户2设置了低9和高10的机器,现在它应该被触发bidz。任何解决方案! – Gowri 2011-06-10 04:59:45

+0

是的,这就是为什么当有人出价和有人设置新的机器时,我会触发它。两者都是触发器。 简单地说:当前价格可能发生变化时,使用所有用户操作作为触发器。 – 2011-06-10 05:05:10

+0

+1为清楚的解释得到了点谢谢 – Gowri 2011-06-10 05:25:38

0

只是猜测,但你想写关闭时间和不断更新的出价金额的实时倒计时一分钱拍卖?随着这一切发生在单个页面上的几个项目?

最佳答案:对页面上的每个项目使用iframe,让它们每2秒刷新一次,检查数据库中的信息并在iframe中显示出价信息。您可以在每个iframe窗口中使用java倒数计时器进行实时关闭时间倒计时显示。