2011-06-02 81 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倒數計時器進行實時關閉時間倒計時顯示。