Movatterモバイル変換


[0]ホーム

URL:


CFEngine documentation homepage

lib/examples.cf

Suggest changes
Table of contents

agent bundles

probabilistic_usebundle

Prototype:probabilistic_usebundle(probability, bundlename)

Description: activate named bundle probabilistically

Arguments:

  • probability: probability that the named bundle will be activated duringa given agent execution
  • bundlename: the bundle to activate based on the probability

Example:

code
bundleagentexample{methods:"Toss Coin"usebundle=>probabilistic_usebundle("50","heads"),comment=>"Call bundle heads ~ 50% of the time";"Trick Coin"usebundle=>probabilistic_usebundle("75","heads"),comment=>"Call bundle heads ~ 75% of the time";}

Implementation:

code
bundleagentprobabilistic_usebundle(probability,bundlename){classes:"fifty_fifty"expression=>strcmp("$(probability)","50"),comment=>"We have to special case 50 because of the way dist classes                  work you would always get 50 defined";"not_fifty_fifty"expression=>"!fifty_fifty";"have_remainder"expression=>isvariable("remainder");fifty_fifty.have_remainder::"activate_bundle"dist=>{"$(probability)000","$(remainder)"};not_fifty_fifty.have_remainder::"activate_bundle"dist=>{"$(probability)","$(remainder)"};vars:fifty_fifty::"remainder"string=>format("%d",eval("((100 -$(probability)) * 1000) +1","math","infix"));not_fifty_fifty::"remainder"string=>format("%d",eval("100 -$(probability)","math","infix"));methods:fifty_fifty::"Activate bundle probabilistically"handle=>"probabilistic_usebundle_methods_special_case_fifty_fifty_activate_bundle",usebundle=>$(bundlename),if=>"activate_bundle_$(probability)000",comment=>"Activate$(bundlename)$(probability)%ish of the time";not_fifty_fifty::"Activate bundle probabilistically"handle=>"probabilistic_usebundle_methods_activate_bundle",usebundle=>$(bundlename),if=>"activate_bundle_$(probability)",comment=>"Activate$(bundlename)$(probability)% of the time";reports:DEBUG.fifty_fifty::"$(this.bundle) Special case for 50/50";"$(this.bundle) activate_bundle_$(probability)000"if=>"activate_bundle_$(probability)000";"$(this.bundle) activate_bundle_$(probability)001"if=>"activate_bundle_$(probability)001";}

Still need help?

Chat Ask a question on Github Mailing list
Version 
master3.24 (LTS)3.21 (LTS)view all versions

[8]ページ先頭

©2009-2025 Movatter.jp