Berlangganan v1 dengan kontrol konkurensi (TIDAK DIGUNAKAN LAGI)
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
(TIDAK DIGUNAKAN LAGI) Berlangganan dengan kontrol konkurensi
Contoh kode
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],[],[],[],null,["# v1 Subscribe with concurrency control (DEPRECATED)\n\n(DEPRECATED) Subscribe with concurrency control\n\nCode sample\n-----------\n\n### Go\n\n\nBefore trying this sample, follow the Go setup instructions in the\n[Pub/Sub quickstart using\nclient libraries](/pubsub/docs/quickstart-client-libraries).\n\n\nFor more information, see the\n[Pub/Sub Go API\nreference documentation](https://godoc.org/cloud.google.com/go/pubsub).\n\n\nTo authenticate to Pub/Sub, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import (\n \t\"context\"\n \t\"fmt\"\n \t\"io\"\n \t\"sync/atomic\"\n \t\"time\"\n\n \t\"cloud.google.com/go/pubsub\"\n )\n\n func pullMsgsConcurrencyControl(w io.Writer, projectID, subID string) error {\n \t// projectID := \"my-project-id\"\n \t// subID := \"my-sub\"\n \tctx := context.Background()\n \tclient, err := pubsub.https://cloud.google.com/go/docs/reference/cloud.google.com/go/pubsub/latest/index.html#cloud_google_com_go_pubsub_Client_NewClient(ctx, projectID)\n \tif err != nil {\n \t\treturn fmt.Errorf(\"pubsub.NewClient: %w\", err)\n \t}\n \tdefer client.Close()\n\n \tsub := client.Subscription(subID)\n \t// Must set ReceiveSettings.Synchronous to false (or leave as default) to enable\n \t// concurrency pulling of messages. Otherwise, NumGoroutines will be set to 1.\n \tsub.ReceiveSettings.Synchronous = false\n \t// NumGoroutines determines the number of goroutines sub.Receive will spawn to pull\n \t// messages.\n \tsub.ReceiveSettings.NumGoroutines = 16\n \t// MaxOutstandingMessages limits the number of concurrent handlers of messages.\n \t// In this case, up to 8 unacked messages can be handled concurrently.\n \t// Note, even in synchronous mode, messages pulled in a batch can still be handled\n \t// concurrently.\n \tsub.ReceiveSettings.MaxOutstandingMessages = 8\n\n \t// Receive messages for 10 seconds, which simplifies testing.\n \t// Comment this out in production, since `Receive` should\n \t// be used as a long running operation.\n \tctx, cancel := context.WithTimeout(ctx, 10*time.Second)\n \tdefer cancel()\n\n \tvar received int32\n\n \t// Receive blocks until the context is cancelled or an error occurs.\n \terr = sub.Receive(ctx, func(_ context.Context, msg *pubsub.Message) {\n \t\tatomic.AddInt32(&received, 1)\n \t\tmsg.Ack()\n \t})\n \tif err != nil {\n \t\treturn fmt.Errorf(\"sub.Receive returned error: %w\", err)\n \t}\n \tfmt.Fprintf(w, \"Received %d messages\\n\", received)\n\n \treturn nil\n }\n\n### Ruby\n\n\nBefore trying this sample, follow the Ruby setup instructions in the\n[Pub/Sub quickstart using\nclient libraries](/pubsub/docs/quickstart-client-libraries).\n\n\nFor more information, see the\n[Pub/Sub Ruby API\nreference documentation](https://googleapis.dev/ruby/google-cloud-pubsub/latest/Google/Cloud/PubSub.html).\n\n\nTo authenticate to Pub/Sub, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n # subscription_id = \"your-subscription-id\"\n\n pubsub = Google::Cloud::https://cloud.google.com/ruby/docs/reference/google-cloud-pubsub/latest/Google-Cloud.html.new\n\n subscription = pubsub.subscription subscription_id\n # Use 2 threads for streaming, 4 threads for executing callbacks and 2 threads\n # for sending acknowledgements and/or delays\n subscriber = subscription.listen streams: 2, threads: {\n callback: 4,\n push: 2\n } do |received_message|\n puts \"Received message: #{received_message.data}\"\n received_message.acknowledge!\n end\n\n subscriber.start\n # Let the main thread sleep for 60 seconds so the thread for listening\n # messages does not quit\n sleep 60\n subscriber.stop.wait!\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=pubsub)."]]